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

com.pulumi.azurenative.databox.kotlin.JobArgs.kt Maven / Gradle / Ivy

@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.azurenative.databox.kotlin

import com.pulumi.azurenative.databox.JobArgs.builder
import com.pulumi.azurenative.databox.kotlin.enums.JobDeliveryType
import com.pulumi.azurenative.databox.kotlin.enums.TransferType
import com.pulumi.azurenative.databox.kotlin.inputs.JobDeliveryInfoArgs
import com.pulumi.azurenative.databox.kotlin.inputs.JobDeliveryInfoArgsBuilder
import com.pulumi.azurenative.databox.kotlin.inputs.ResourceIdentityArgs
import com.pulumi.azurenative.databox.kotlin.inputs.ResourceIdentityArgsBuilder
import com.pulumi.azurenative.databox.kotlin.inputs.SkuArgs
import com.pulumi.azurenative.databox.kotlin.inputs.SkuArgsBuilder
import com.pulumi.core.Either
import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiTagMarker
import com.pulumi.kotlin.applySuspend
import kotlin.Any
import kotlin.Pair
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.Map
import kotlin.jvm.JvmName

/**
 * Job Resource.
 * Azure REST API version: 2022-12-01. Prior API version in Azure Native 1.x: 2020-11-01.
 * Other available API versions: 2019-09-01, 2023-03-01, 2023-12-01, 2024-02-01-preview, 2024-03-01-preview.
 * ## Example Usage
 * ### JobsCreate
 * ```csharp
 * using System.Collections.Generic;
 * using System.Linq;
 * using Pulumi;
 * using AzureNative = Pulumi.AzureNative;
 * return await Deployment.RunAsync(() =>
 * {
 *     var job = new AzureNative.DataBox.Job("job", new()
 *     {
 *         Details = new AzureNative.DataBox.Inputs.DataBoxJobDetailsArgs
 *         {
 *             ContactDetails = new AzureNative.DataBox.Inputs.ContactDetailsArgs
 *             {
 *                 ContactName = "XXXX XXXX",
 *                 EmailList = new[]
 *                 {
 *                     "[email protected]",
 *                 },
 *                 Phone = "0000000000",
 *                 PhoneExtension = "",
 *             },
 *             DataImportDetails = new[]
 *             {
 *                 new AzureNative.DataBox.Inputs.DataImportDetailsArgs
 *                 {
 *                     AccountDetails = new AzureNative.DataBox.Inputs.StorageAccountDetailsArgs
 *                     {
 *                         DataAccountType = "StorageAccount",
 *                         StorageAccountId = "/subscriptions/YourSubscriptionId/resourcegroups/YourResourceGroupName/providers/Microsoft.Storage/storageAccounts/YourStorageAccountName",
 *                     },
 *                 },
 *             },
 *             JobDetailsType = "DataBox",
 *             ShippingAddress = new AzureNative.DataBox.Inputs.ShippingAddressArgs
 *             {
 *                 AddressType = AzureNative.DataBox.AddressType.Commercial,
 *                 City = "XXXX XXXX",
 *                 CompanyName = "XXXX XXXX",
 *                 Country = "XX",
 *                 PostalCode = "00000",
 *                 StateOrProvince = "XX",
 *                 StreetAddress1 = "XXXX XXXX",
 *                 StreetAddress2 = "XXXX XXXX",
 *             },
 *         },
 *         JobName = "TestJobName1",
 *         Location = "westus",
 *         ResourceGroupName = "YourResourceGroupName",
 *         Sku = new AzureNative.DataBox.Inputs.SkuArgs
 *         {
 *             Name = AzureNative.DataBox.SkuName.DataBox,
 *         },
 *         TransferType = AzureNative.DataBox.TransferType.ImportToAzure,
 *     });
 * });
 * ```
 * ```go
 * package main
 * import (
 * 	databox "github.com/pulumi/pulumi-azure-native-sdk/databox/v2"
 * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
 * )
 * func main() {
 * 	pulumi.Run(func(ctx *pulumi.Context) error {
 * 		_, err := databox.NewJob(ctx, "job", &databox.JobArgs{
 * 			Details: &databox.DataBoxJobDetailsArgs{
 * 				ContactDetails: &databox.ContactDetailsArgs{
 * 					ContactName: pulumi.String("XXXX XXXX"),
 * 					EmailList: pulumi.StringArray{
 * 						pulumi.String("[email protected]"),
 * 					},
 * 					Phone:          pulumi.String("0000000000"),
 * 					PhoneExtension: pulumi.String(""),
 * 				},
 * 				DataImportDetails: databox.DataImportDetailsArray{
 * 					&databox.DataImportDetailsArgs{
 * 						AccountDetails: databox.StorageAccountDetails{
 * 							DataAccountType:  "StorageAccount",
 * 							StorageAccountId: "/subscriptions/YourSubscriptionId/resourcegroups/YourResourceGroupName/providers/Microsoft.Storage/storageAccounts/YourStorageAccountName",
 * 						},
 * 					},
 * 				},
 * 				JobDetailsType: pulumi.String("DataBox"),
 * 				ShippingAddress: &databox.ShippingAddressArgs{
 * 					AddressType:     pulumi.String(databox.AddressTypeCommercial),
 * 					City:            pulumi.String("XXXX XXXX"),
 * 					CompanyName:     pulumi.String("XXXX XXXX"),
 * 					Country:         pulumi.String("XX"),
 * 					PostalCode:      pulumi.String("00000"),
 * 					StateOrProvince: pulumi.String("XX"),
 * 					StreetAddress1:  pulumi.String("XXXX XXXX"),
 * 					StreetAddress2:  pulumi.String("XXXX XXXX"),
 * 				},
 * 			},
 * 			JobName:           pulumi.String("TestJobName1"),
 * 			Location:          pulumi.String("westus"),
 * 			ResourceGroupName: pulumi.String("YourResourceGroupName"),
 * 			Sku: &databox.SkuArgs{
 * 				Name: pulumi.String(databox.SkuNameDataBox),
 * 			},
 * 			TransferType: pulumi.String(databox.TransferTypeImportToAzure),
 * 		})
 * 		if err != nil {
 * 			return err
 * 		}
 * 		return nil
 * 	})
 * }
 * ```
 * ```java
 * package generated_program;
 * import com.pulumi.Context;
 * import com.pulumi.Pulumi;
 * import com.pulumi.core.Output;
 * import com.pulumi.azurenative.databox.Job;
 * import com.pulumi.azurenative.databox.JobArgs;
 * import com.pulumi.azurenative.databox.inputs.SkuArgs;
 * 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 job = new Job("job", JobArgs.builder()
 *             .details(DataBoxCustomerDiskJobDetailsArgs.builder()
 *                 .contactDetails(ContactDetailsArgs.builder()
 *                     .contactName("XXXX XXXX")
 *                     .emailList("[email protected]")
 *                     .phone("0000000000")
 *                     .phoneExtension("")
 *                     .build())
 *                 .dataImportDetails(DataImportDetailsArgs.builder()
 *                     .accountDetails(StorageAccountDetailsArgs.builder()
 *                         .dataAccountType("StorageAccount")
 *                         .storageAccountId("/subscriptions/YourSubscriptionId/resourcegroups/YourResourceGroupName/providers/Microsoft.Storage/storageAccounts/YourStorageAccountName")
 *                         .build())
 *                     .build())
 *                 .jobDetailsType("DataBox")
 *                 .shippingAddress(ShippingAddressArgs.builder()
 *                     .addressType("Commercial")
 *                     .city("XXXX XXXX")
 *                     .companyName("XXXX XXXX")
 *                     .country("XX")
 *                     .postalCode("00000")
 *                     .stateOrProvince("XX")
 *                     .streetAddress1("XXXX XXXX")
 *                     .streetAddress2("XXXX XXXX")
 *                     .build())
 *                 .build())
 *             .jobName("TestJobName1")
 *             .location("westus")
 *             .resourceGroupName("YourResourceGroupName")
 *             .sku(SkuArgs.builder()
 *                 .name("DataBox")
 *                 .build())
 *             .transferType("ImportToAzure")
 *             .build());
 *     }
 * }
 * ```
 * ### JobsCreateDevicePassword
 * ```csharp
 * using System.Collections.Generic;
 * using System.Linq;
 * using Pulumi;
 * using AzureNative = Pulumi.AzureNative;
 * return await Deployment.RunAsync(() =>
 * {
 *     var job = new AzureNative.DataBox.Job("job", new()
 *     {
 *         Details = new AzureNative.DataBox.Inputs.DataBoxJobDetailsArgs
 *         {
 *             ContactDetails = new AzureNative.DataBox.Inputs.ContactDetailsArgs
 *             {
 *                 ContactName = "XXXX XXXX",
 *                 EmailList = new[]
 *                 {
 *                     "[email protected]",
 *                 },
 *                 Phone = "0000000000",
 *                 PhoneExtension = "",
 *             },
 *             DataImportDetails = new[]
 *             {
 *                 new AzureNative.DataBox.Inputs.DataImportDetailsArgs
 *                 {
 *                     AccountDetails = new AzureNative.DataBox.Inputs.StorageAccountDetailsArgs
 *                     {
 *                         DataAccountType = "StorageAccount",
 *                         SharePassword = "",
 *                         StorageAccountId = "/subscriptions/YourSubscriptionId/resourceGroups/YourResourceGroupName/providers/Microsoft.Storage/storageAccounts/YourStorageAccountName",
 *                     },
 *                 },
 *             },
 *             DevicePassword = "",
 *             JobDetailsType = "DataBox",
 *             ShippingAddress = new AzureNative.DataBox.Inputs.ShippingAddressArgs
 *             {
 *                 AddressType = AzureNative.DataBox.AddressType.Commercial,
 *                 City = "XXXX XXXX",
 *                 CompanyName = "XXXX XXXX",
 *                 Country = "XX",
 *                 PostalCode = "00000",
 *                 StateOrProvince = "XX",
 *                 StreetAddress1 = "XXXX XXXX",
 *                 StreetAddress2 = "XXXX XXXX",
 *             },
 *         },
 *         JobName = "TestJobName1",
 *         Location = "westus",
 *         ResourceGroupName = "YourResourceGroupName",
 *         Sku = new AzureNative.DataBox.Inputs.SkuArgs
 *         {
 *             Name = AzureNative.DataBox.SkuName.DataBox,
 *         },
 *         TransferType = AzureNative.DataBox.TransferType.ImportToAzure,
 *     });
 * });
 * ```
 * ```go
 * package main
 * import (
 * 	databox "github.com/pulumi/pulumi-azure-native-sdk/databox/v2"
 * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
 * )
 * func main() {
 * 	pulumi.Run(func(ctx *pulumi.Context) error {
 * 		_, err := databox.NewJob(ctx, "job", &databox.JobArgs{
 * 			Details: &databox.DataBoxJobDetailsArgs{
 * 				ContactDetails: &databox.ContactDetailsArgs{
 * 					ContactName: pulumi.String("XXXX XXXX"),
 * 					EmailList: pulumi.StringArray{
 * 						pulumi.String("[email protected]"),
 * 					},
 * 					Phone:          pulumi.String("0000000000"),
 * 					PhoneExtension: pulumi.String(""),
 * 				},
 * 				DataImportDetails: databox.DataImportDetailsArray{
 * 					&databox.DataImportDetailsArgs{
 * 						AccountDetails: databox.StorageAccountDetails{
 * 							DataAccountType:  "StorageAccount",
 * 							SharePassword:    "",
 * 							StorageAccountId: "/subscriptions/YourSubscriptionId/resourceGroups/YourResourceGroupName/providers/Microsoft.Storage/storageAccounts/YourStorageAccountName",
 * 						},
 * 					},
 * 				},
 * 				DevicePassword: pulumi.String(""),
 * 				JobDetailsType: pulumi.String("DataBox"),
 * 				ShippingAddress: &databox.ShippingAddressArgs{
 * 					AddressType:     pulumi.String(databox.AddressTypeCommercial),
 * 					City:            pulumi.String("XXXX XXXX"),
 * 					CompanyName:     pulumi.String("XXXX XXXX"),
 * 					Country:         pulumi.String("XX"),
 * 					PostalCode:      pulumi.String("00000"),
 * 					StateOrProvince: pulumi.String("XX"),
 * 					StreetAddress1:  pulumi.String("XXXX XXXX"),
 * 					StreetAddress2:  pulumi.String("XXXX XXXX"),
 * 				},
 * 			},
 * 			JobName:           pulumi.String("TestJobName1"),
 * 			Location:          pulumi.String("westus"),
 * 			ResourceGroupName: pulumi.String("YourResourceGroupName"),
 * 			Sku: &databox.SkuArgs{
 * 				Name: pulumi.String(databox.SkuNameDataBox),
 * 			},
 * 			TransferType: pulumi.String(databox.TransferTypeImportToAzure),
 * 		})
 * 		if err != nil {
 * 			return err
 * 		}
 * 		return nil
 * 	})
 * }
 * ```
 * ```java
 * package generated_program;
 * import com.pulumi.Context;
 * import com.pulumi.Pulumi;
 * import com.pulumi.core.Output;
 * import com.pulumi.azurenative.databox.Job;
 * import com.pulumi.azurenative.databox.JobArgs;
 * import com.pulumi.azurenative.databox.inputs.SkuArgs;
 * 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 job = new Job("job", JobArgs.builder()
 *             .details(DataBoxCustomerDiskJobDetailsArgs.builder()
 *                 .contactDetails(ContactDetailsArgs.builder()
 *                     .contactName("XXXX XXXX")
 *                     .emailList("[email protected]")
 *                     .phone("0000000000")
 *                     .phoneExtension("")
 *                     .build())
 *                 .dataImportDetails(DataImportDetailsArgs.builder()
 *                     .accountDetails(StorageAccountDetailsArgs.builder()
 *                         .dataAccountType("StorageAccount")
 *                         .sharePassword("")
 *                         .storageAccountId("/subscriptions/YourSubscriptionId/resourceGroups/YourResourceGroupName/providers/Microsoft.Storage/storageAccounts/YourStorageAccountName")
 *                         .build())
 *                     .build())
 *                 .devicePassword("")
 *                 .jobDetailsType("DataBox")
 *                 .shippingAddress(ShippingAddressArgs.builder()
 *                     .addressType("Commercial")
 *                     .city("XXXX XXXX")
 *                     .companyName("XXXX XXXX")
 *                     .country("XX")
 *                     .postalCode("00000")
 *                     .stateOrProvince("XX")
 *                     .streetAddress1("XXXX XXXX")
 *                     .streetAddress2("XXXX XXXX")
 *                     .build())
 *                 .build())
 *             .jobName("TestJobName1")
 *             .location("westus")
 *             .resourceGroupName("YourResourceGroupName")
 *             .sku(SkuArgs.builder()
 *                 .name("DataBox")
 *                 .build())
 *             .transferType("ImportToAzure")
 *             .build());
 *     }
 * }
 * ```
 * ### JobsCreateDoubleEncryption
 * ```csharp
 * using System.Collections.Generic;
 * using System.Linq;
 * using Pulumi;
 * using AzureNative = Pulumi.AzureNative;
 * return await Deployment.RunAsync(() =>
 * {
 *     var job = new AzureNative.DataBox.Job("job", new()
 *     {
 *         Details = new AzureNative.DataBox.Inputs.DataBoxJobDetailsArgs
 *         {
 *             ContactDetails = new AzureNative.DataBox.Inputs.ContactDetailsArgs
 *             {
 *                 ContactName = "XXXX XXXX",
 *                 EmailList = new[]
 *                 {
 *                     "[email protected]",
 *                 },
 *                 Phone = "0000000000",
 *                 PhoneExtension = "",
 *             },
 *             DataImportDetails = new[]
 *             {
 *                 new AzureNative.DataBox.Inputs.DataImportDetailsArgs
 *                 {
 *                     AccountDetails = new AzureNative.DataBox.Inputs.StorageAccountDetailsArgs
 *                     {
 *                         DataAccountType = "StorageAccount",
 *                         StorageAccountId = "/subscriptions/YourSubscriptionId/resourcegroups/YourResourceGroupName/providers/Microsoft.Storage/storageAccounts/YourStorageAccountName",
 *                     },
 *                 },
 *             },
 *             JobDetailsType = "DataBox",
 *             Preferences = new AzureNative.DataBox.Inputs.PreferencesArgs
 *             {
 *                 EncryptionPreferences = new AzureNative.DataBox.Inputs.EncryptionPreferencesArgs
 *                 {
 *                     DoubleEncryption = AzureNative.DataBox.DoubleEncryption.Enabled,
 *                 },
 *             },
 *             ShippingAddress = new AzureNative.DataBox.Inputs.ShippingAddressArgs
 *             {
 *                 AddressType = AzureNative.DataBox.AddressType.Commercial,
 *                 City = "XXXX XXXX",
 *                 CompanyName = "XXXX XXXX",
 *                 Country = "XX",
 *                 PostalCode = "00000",
 *                 StateOrProvince = "XX",
 *                 StreetAddress1 = "XXXX XXXX",
 *                 StreetAddress2 = "XXXX XXXX",
 *             },
 *         },
 *         JobName = "TestJobName1",
 *         Location = "westus",
 *         ResourceGroupName = "YourResourceGroupName",
 *         Sku = new AzureNative.DataBox.Inputs.SkuArgs
 *         {
 *             Name = AzureNative.DataBox.SkuName.DataBox,
 *         },
 *         TransferType = AzureNative.DataBox.TransferType.ImportToAzure,
 *     });
 * });
 * ```
 * ```go
 * package main
 * import (
 * 	databox "github.com/pulumi/pulumi-azure-native-sdk/databox/v2"
 * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
 * )
 * func main() {
 * 	pulumi.Run(func(ctx *pulumi.Context) error {
 * 		_, err := databox.NewJob(ctx, "job", &databox.JobArgs{
 * 			Details: &databox.DataBoxJobDetailsArgs{
 * 				ContactDetails: &databox.ContactDetailsArgs{
 * 					ContactName: pulumi.String("XXXX XXXX"),
 * 					EmailList: pulumi.StringArray{
 * 						pulumi.String("[email protected]"),
 * 					},
 * 					Phone:          pulumi.String("0000000000"),
 * 					PhoneExtension: pulumi.String(""),
 * 				},
 * 				DataImportDetails: databox.DataImportDetailsArray{
 * 					&databox.DataImportDetailsArgs{
 * 						AccountDetails: databox.StorageAccountDetails{
 * 							DataAccountType:  "StorageAccount",
 * 							StorageAccountId: "/subscriptions/YourSubscriptionId/resourcegroups/YourResourceGroupName/providers/Microsoft.Storage/storageAccounts/YourStorageAccountName",
 * 						},
 * 					},
 * 				},
 * 				JobDetailsType: pulumi.String("DataBox"),
 * 				Preferences: &databox.PreferencesArgs{
 * 					EncryptionPreferences: &databox.EncryptionPreferencesArgs{
 * 						DoubleEncryption: pulumi.String(databox.DoubleEncryptionEnabled),
 * 					},
 * 				},
 * 				ShippingAddress: &databox.ShippingAddressArgs{
 * 					AddressType:     pulumi.String(databox.AddressTypeCommercial),
 * 					City:            pulumi.String("XXXX XXXX"),
 * 					CompanyName:     pulumi.String("XXXX XXXX"),
 * 					Country:         pulumi.String("XX"),
 * 					PostalCode:      pulumi.String("00000"),
 * 					StateOrProvince: pulumi.String("XX"),
 * 					StreetAddress1:  pulumi.String("XXXX XXXX"),
 * 					StreetAddress2:  pulumi.String("XXXX XXXX"),
 * 				},
 * 			},
 * 			JobName:           pulumi.String("TestJobName1"),
 * 			Location:          pulumi.String("westus"),
 * 			ResourceGroupName: pulumi.String("YourResourceGroupName"),
 * 			Sku: &databox.SkuArgs{
 * 				Name: pulumi.String(databox.SkuNameDataBox),
 * 			},
 * 			TransferType: pulumi.String(databox.TransferTypeImportToAzure),
 * 		})
 * 		if err != nil {
 * 			return err
 * 		}
 * 		return nil
 * 	})
 * }
 * ```
 * ```java
 * package generated_program;
 * import com.pulumi.Context;
 * import com.pulumi.Pulumi;
 * import com.pulumi.core.Output;
 * import com.pulumi.azurenative.databox.Job;
 * import com.pulumi.azurenative.databox.JobArgs;
 * import com.pulumi.azurenative.databox.inputs.SkuArgs;
 * 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 job = new Job("job", JobArgs.builder()
 *             .details(DataBoxCustomerDiskJobDetailsArgs.builder()
 *                 .contactDetails(ContactDetailsArgs.builder()
 *                     .contactName("XXXX XXXX")
 *                     .emailList("[email protected]")
 *                     .phone("0000000000")
 *                     .phoneExtension("")
 *                     .build())
 *                 .dataImportDetails(DataImportDetailsArgs.builder()
 *                     .accountDetails(StorageAccountDetailsArgs.builder()
 *                         .dataAccountType("StorageAccount")
 *                         .storageAccountId("/subscriptions/YourSubscriptionId/resourcegroups/YourResourceGroupName/providers/Microsoft.Storage/storageAccounts/YourStorageAccountName")
 *                         .build())
 *                     .build())
 *                 .jobDetailsType("DataBox")
 *                 .preferences(PreferencesArgs.builder()
 *                     .encryptionPreferences(EncryptionPreferencesArgs.builder()
 *                         .doubleEncryption("Enabled")
 *                         .build())
 *                     .build())
 *                 .shippingAddress(ShippingAddressArgs.builder()
 *                     .addressType("Commercial")
 *                     .city("XXXX XXXX")
 *                     .companyName("XXXX XXXX")
 *                     .country("XX")
 *                     .postalCode("00000")
 *                     .stateOrProvince("XX")
 *                     .streetAddress1("XXXX XXXX")
 *                     .streetAddress2("XXXX XXXX")
 *                     .build())
 *                 .build())
 *             .jobName("TestJobName1")
 *             .location("westus")
 *             .resourceGroupName("YourResourceGroupName")
 *             .sku(SkuArgs.builder()
 *                 .name("DataBox")
 *                 .build())
 *             .transferType("ImportToAzure")
 *             .build());
 *     }
 * }
 * ```
 * ### JobsCreateExport
 * ```csharp
 * using System.Collections.Generic;
 * using System.Linq;
 * using Pulumi;
 * using AzureNative = Pulumi.AzureNative;
 * return await Deployment.RunAsync(() =>
 * {
 *     var job = new AzureNative.DataBox.Job("job", new()
 *     {
 *         Details = new AzureNative.DataBox.Inputs.DataBoxJobDetailsArgs
 *         {
 *             ContactDetails = new AzureNative.DataBox.Inputs.ContactDetailsArgs
 *             {
 *                 ContactName = "XXXX XXXX",
 *                 EmailList = new[]
 *                 {
 *                     "[email protected]",
 *                 },
 *                 Phone = "0000000000",
 *                 PhoneExtension = "",
 *             },
 *             DataExportDetails = new[]
 *             {
 *                 new AzureNative.DataBox.Inputs.DataExportDetailsArgs
 *                 {
 *                     AccountDetails = new AzureNative.DataBox.Inputs.StorageAccountDetailsArgs
 *                     {
 *                         DataAccountType = "StorageAccount",
 *                         StorageAccountId = "/subscriptions/YourSubscriptionId/resourceGroups/YourResourceGroupName/providers/Microsoft.Storage/storageAccounts/YourStorageAccountName",
 *                     },
 *                     TransferConfiguration = new AzureNative.DataBox.Inputs.TransferConfigurationArgs
 *                     {
 *                         TransferAllDetails = new AzureNative.DataBox.Inputs.TransferConfigurationTransferAllDetailsArgs
 *                         {
 *                             Include = new AzureNative.DataBox.Inputs.TransferAllDetailsArgs
 *                             {
 *                                 DataAccountType = AzureNative.DataBox.DataAccountType.StorageAccount,
 *                                 TransferAllBlobs = true,
 *                                 TransferAllFiles = true,
 *                             },
 *                         },
 *                         TransferConfigurationType = AzureNative.DataBox.TransferConfigurationType.TransferAll,
 *                     },
 *                 },
 *             },
 *             JobDetailsType = "DataBox",
 *             ShippingAddress = new AzureNative.DataBox.Inputs.ShippingAddressArgs
 *             {
 *                 AddressType = AzureNative.DataBox.AddressType.Commercial,
 *                 City = "XXXX XXXX",
 *                 CompanyName = "XXXX XXXX",
 *                 Country = "XX",
 *                 PostalCode = "00000",
 *                 StateOrProvince = "XX",
 *                 StreetAddress1 = "XXXX XXXX",
 *                 StreetAddress2 = "XXXX XXXX",
 *             },
 *         },
 *         JobName = "TestJobName1",
 *         Location = "westus",
 *         ResourceGroupName = "YourResourceGroupName",
 *         Sku = new AzureNative.DataBox.Inputs.SkuArgs
 *         {
 *             Name = AzureNative.DataBox.SkuName.DataBox,
 *         },
 *         TransferType = AzureNative.DataBox.TransferType.ExportFromAzure,
 *     });
 * });
 * ```
 * ```go
 * package main
 * import (
 * 	databox "github.com/pulumi/pulumi-azure-native-sdk/databox/v2"
 * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
 * )
 * func main() {
 * 	pulumi.Run(func(ctx *pulumi.Context) error {
 * 		_, err := databox.NewJob(ctx, "job", &databox.JobArgs{
 * 			Details: &databox.DataBoxJobDetailsArgs{
 * 				ContactDetails: &databox.ContactDetailsArgs{
 * 					ContactName: pulumi.String("XXXX XXXX"),
 * 					EmailList: pulumi.StringArray{
 * 						pulumi.String("[email protected]"),
 * 					},
 * 					Phone:          pulumi.String("0000000000"),
 * 					PhoneExtension: pulumi.String(""),
 * 				},
 * 				DataExportDetails: databox.DataExportDetailsArray{
 * 					&databox.DataExportDetailsArgs{
 * 						AccountDetails: databox.StorageAccountDetails{
 * 							DataAccountType:  "StorageAccount",
 * 							StorageAccountId: "/subscriptions/YourSubscriptionId/resourceGroups/YourResourceGroupName/providers/Microsoft.Storage/storageAccounts/YourStorageAccountName",
 * 						},
 * 						TransferConfiguration: &databox.TransferConfigurationArgs{
 * 							TransferAllDetails: &databox.TransferConfigurationTransferAllDetailsArgs{
 * 								Include: &databox.TransferAllDetailsArgs{
 * 									DataAccountType:  pulumi.String(databox.DataAccountTypeStorageAccount),
 * 									TransferAllBlobs: pulumi.Bool(true),
 * 									TransferAllFiles: pulumi.Bool(true),
 * 								},
 * 							},
 * 							TransferConfigurationType: pulumi.String(databox.TransferConfigurationTypeTransferAll),
 * 						},
 * 					},
 * 				},
 * 				JobDetailsType: pulumi.String("DataBox"),
 * 				ShippingAddress: &databox.ShippingAddressArgs{
 * 					AddressType:     pulumi.String(databox.AddressTypeCommercial),
 * 					City:            pulumi.String("XXXX XXXX"),
 * 					CompanyName:     pulumi.String("XXXX XXXX"),
 * 					Country:         pulumi.String("XX"),
 * 					PostalCode:      pulumi.String("00000"),
 * 					StateOrProvince: pulumi.String("XX"),
 * 					StreetAddress1:  pulumi.String("XXXX XXXX"),
 * 					StreetAddress2:  pulumi.String("XXXX XXXX"),
 * 				},
 * 			},
 * 			JobName:           pulumi.String("TestJobName1"),
 * 			Location:          pulumi.String("westus"),
 * 			ResourceGroupName: pulumi.String("YourResourceGroupName"),
 * 			Sku: &databox.SkuArgs{
 * 				Name: pulumi.String(databox.SkuNameDataBox),
 * 			},
 * 			TransferType: pulumi.String(databox.TransferTypeExportFromAzure),
 * 		})
 * 		if err != nil {
 * 			return err
 * 		}
 * 		return nil
 * 	})
 * }
 * ```
 * ```java
 * package generated_program;
 * import com.pulumi.Context;
 * import com.pulumi.Pulumi;
 * import com.pulumi.core.Output;
 * import com.pulumi.azurenative.databox.Job;
 * import com.pulumi.azurenative.databox.JobArgs;
 * import com.pulumi.azurenative.databox.inputs.SkuArgs;
 * 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 job = new Job("job", JobArgs.builder()
 *             .details(DataBoxCustomerDiskJobDetailsArgs.builder()
 *                 .contactDetails(ContactDetailsArgs.builder()
 *                     .contactName("XXXX XXXX")
 *                     .emailList("[email protected]")
 *                     .phone("0000000000")
 *                     .phoneExtension("")
 *                     .build())
 *                 .dataExportDetails(DataExportDetailsArgs.builder()
 *                     .accountDetails(StorageAccountDetailsArgs.builder()
 *                         .dataAccountType("StorageAccount")
 *                         .storageAccountId("/subscriptions/YourSubscriptionId/resourceGroups/YourResourceGroupName/providers/Microsoft.Storage/storageAccounts/YourStorageAccountName")
 *                         .build())
 *                     .transferConfiguration(TransferConfigurationArgs.builder()
 *                         .transferAllDetails(TransferConfigurationTransferAllDetailsArgs.builder()
 *                             .include(TransferAllDetailsArgs.builder()
 *                                 .dataAccountType("StorageAccount")
 *                                 .transferAllBlobs(true)
 *                                 .transferAllFiles(true)
 *                                 .build())
 *                             .build())
 *                         .transferConfigurationType("TransferAll")
 *                         .build())
 *                     .build())
 *                 .jobDetailsType("DataBox")
 *                 .shippingAddress(ShippingAddressArgs.builder()
 *                     .addressType("Commercial")
 *                     .city("XXXX XXXX")
 *                     .companyName("XXXX XXXX")
 *                     .country("XX")
 *                     .postalCode("00000")
 *                     .stateOrProvince("XX")
 *                     .streetAddress1("XXXX XXXX")
 *                     .streetAddress2("XXXX XXXX")
 *                     .build())
 *                 .build())
 *             .jobName("TestJobName1")
 *             .location("westus")
 *             .resourceGroupName("YourResourceGroupName")
 *             .sku(SkuArgs.builder()
 *                 .name("DataBox")
 *                 .build())
 *             .transferType("ExportFromAzure")
 *             .build());
 *     }
 * }
 * ```
 * ## Import
 * An existing resource can be imported using its type token, name, and identifier, e.g.
 * ```sh
 * $ pulumi import azure-native:databox:Job TestJobName1 /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBox/jobs/{jobName}
 * ```
 * @property deliveryInfo Delivery Info of Job.
 * @property deliveryType Delivery type of Job.
 * @property details Details of a job run. This field will only be sent for expand details filter.
 * @property identity Msi identity of the resource
 * @property jobName The name of the job Resource within the specified resource group. job names must be between 3 and 24 characters in length and use any alphanumeric and underscore only
 * @property location The location of the resource. This will be one of the supported and registered Azure Regions (e.g. West US, East US, Southeast Asia, etc.). The region of a resource cannot be changed once it is created, but if an identical region is specified on update the request will succeed.
 * @property resourceGroupName The Resource Group Name
 * @property sku The sku type.
 * @property tags The list of key value pairs that describe the resource. These tags can be used in viewing and grouping this resource (across resource groups).
 * @property transferType Type of the data transfer.
 */
public data class JobArgs(
    public val deliveryInfo: Output? = null,
    public val deliveryType: Output>? = null,
    public val details: Output? = null,
    public val identity: Output? = null,
    public val jobName: Output? = null,
    public val location: Output? = null,
    public val resourceGroupName: Output? = null,
    public val sku: Output? = null,
    public val tags: Output>? = null,
    public val transferType: Output>? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.azurenative.databox.JobArgs =
        com.pulumi.azurenative.databox.JobArgs.builder()
            .deliveryInfo(deliveryInfo?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .deliveryType(
                deliveryType?.applyValue({ args0 ->
                    args0.transform({ args0 -> args0 }, { args0 ->
                        args0.let({ args0 -> args0.toJava() })
                    })
                }),
            )
            .details(details?.applyValue({ args0 -> args0 }))
            .identity(identity?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .jobName(jobName?.applyValue({ args0 -> args0 }))
            .location(location?.applyValue({ args0 -> args0 }))
            .resourceGroupName(resourceGroupName?.applyValue({ args0 -> args0 }))
            .sku(sku?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .tags(tags?.applyValue({ args0 -> args0.map({ args0 -> args0.key.to(args0.value) }).toMap() }))
            .transferType(
                transferType?.applyValue({ args0 ->
                    args0.transform({ args0 -> args0 }, { args0 ->
                        args0.let({ args0 -> args0.toJava() })
                    })
                }),
            ).build()
}

/**
 * Builder for [JobArgs].
 */
@PulumiTagMarker
public class JobArgsBuilder internal constructor() {
    private var deliveryInfo: Output? = null

    private var deliveryType: Output>? = null

    private var details: Output? = null

    private var identity: Output? = null

    private var jobName: Output? = null

    private var location: Output? = null

    private var resourceGroupName: Output? = null

    private var sku: Output? = null

    private var tags: Output>? = null

    private var transferType: Output>? = null

    /**
     * @param value Delivery Info of Job.
     */
    @JvmName("srrfygsgclgprrwi")
    public suspend fun deliveryInfo(`value`: Output) {
        this.deliveryInfo = value
    }

    /**
     * @param value Delivery type of Job.
     */
    @JvmName("jkrkcjysuuoiahoc")
    public suspend fun deliveryType(`value`: Output>) {
        this.deliveryType = value
    }

    /**
     * @param value Details of a job run. This field will only be sent for expand details filter.
     */
    @JvmName("wvfoeuspjpcqtbdy")
    public suspend fun details(`value`: Output) {
        this.details = value
    }

    /**
     * @param value Msi identity of the resource
     */
    @JvmName("noqgpdsmshvvbcdt")
    public suspend fun identity(`value`: Output) {
        this.identity = value
    }

    /**
     * @param value The name of the job Resource within the specified resource group. job names must be between 3 and 24 characters in length and use any alphanumeric and underscore only
     */
    @JvmName("sgfpdafwlltykova")
    public suspend fun jobName(`value`: Output) {
        this.jobName = value
    }

    /**
     * @param value The location of the resource. This will be one of the supported and registered Azure Regions (e.g. West US, East US, Southeast Asia, etc.). The region of a resource cannot be changed once it is created, but if an identical region is specified on update the request will succeed.
     */
    @JvmName("jjiukxardnbcrbsv")
    public suspend fun location(`value`: Output) {
        this.location = value
    }

    /**
     * @param value The Resource Group Name
     */
    @JvmName("smhefaitmfvusqhl")
    public suspend fun resourceGroupName(`value`: Output) {
        this.resourceGroupName = value
    }

    /**
     * @param value The sku type.
     */
    @JvmName("vgghwfiycbrwodpn")
    public suspend fun sku(`value`: Output) {
        this.sku = value
    }

    /**
     * @param value The list of key value pairs that describe the resource. These tags can be used in viewing and grouping this resource (across resource groups).
     */
    @JvmName("miochruchiqwnfjy")
    public suspend fun tags(`value`: Output>) {
        this.tags = value
    }

    /**
     * @param value Type of the data transfer.
     */
    @JvmName("psqatffdenybrsfo")
    public suspend fun transferType(`value`: Output>) {
        this.transferType = value
    }

    /**
     * @param value Delivery Info of Job.
     */
    @JvmName("anvbrissfqkpdsna")
    public suspend fun deliveryInfo(`value`: JobDeliveryInfoArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.deliveryInfo = mapped
    }

    /**
     * @param argument Delivery Info of Job.
     */
    @JvmName("dettdwgpofwawrct")
    public suspend fun deliveryInfo(argument: suspend JobDeliveryInfoArgsBuilder.() -> Unit) {
        val toBeMapped = JobDeliveryInfoArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.deliveryInfo = mapped
    }

    /**
     * @param value Delivery type of Job.
     */
    @JvmName("hthydlkiqhgiwceh")
    public suspend fun deliveryType(`value`: Either?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.deliveryType = mapped
    }

    /**
     * @param value Delivery type of Job.
     */
    @JvmName("jibbqmuwhwrgxdgc")
    public fun deliveryType(`value`: String) {
        val toBeMapped = Either.ofLeft(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.deliveryType = mapped
    }

    /**
     * @param value Delivery type of Job.
     */
    @JvmName("fthdibphxiwdxhyi")
    public fun deliveryType(`value`: JobDeliveryType) {
        val toBeMapped = Either.ofRight(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.deliveryType = mapped
    }

    /**
     * @param value Details of a job run. This field will only be sent for expand details filter.
     */
    @JvmName("daohcstvnasjexkd")
    public suspend fun details(`value`: Any?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.details = mapped
    }

    /**
     * @param value Msi identity of the resource
     */
    @JvmName("tbybjiqaolilddal")
    public suspend fun identity(`value`: ResourceIdentityArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.identity = mapped
    }

    /**
     * @param argument Msi identity of the resource
     */
    @JvmName("xenrytwjnqntnmcw")
    public suspend fun identity(argument: suspend ResourceIdentityArgsBuilder.() -> Unit) {
        val toBeMapped = ResourceIdentityArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.identity = mapped
    }

    /**
     * @param value The name of the job Resource within the specified resource group. job names must be between 3 and 24 characters in length and use any alphanumeric and underscore only
     */
    @JvmName("odhblctikbpuebeo")
    public suspend fun jobName(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.jobName = mapped
    }

    /**
     * @param value The location of the resource. This will be one of the supported and registered Azure Regions (e.g. West US, East US, Southeast Asia, etc.). The region of a resource cannot be changed once it is created, but if an identical region is specified on update the request will succeed.
     */
    @JvmName("ufcygaboxbbeygey")
    public suspend fun location(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.location = mapped
    }

    /**
     * @param value The Resource Group Name
     */
    @JvmName("dhsmtgplncpmkiia")
    public suspend fun resourceGroupName(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.resourceGroupName = mapped
    }

    /**
     * @param value The sku type.
     */
    @JvmName("dyptlpjuvarhvihi")
    public suspend fun sku(`value`: SkuArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.sku = mapped
    }

    /**
     * @param argument The sku type.
     */
    @JvmName("lnfxknabqljveduo")
    public suspend fun sku(argument: suspend SkuArgsBuilder.() -> Unit) {
        val toBeMapped = SkuArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.sku = mapped
    }

    /**
     * @param value The list of key value pairs that describe the resource. These tags can be used in viewing and grouping this resource (across resource groups).
     */
    @JvmName("ycvwgmoeatodyuns")
    public suspend fun tags(`value`: Map?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.tags = mapped
    }

    /**
     * @param values The list of key value pairs that describe the resource. These tags can be used in viewing and grouping this resource (across resource groups).
     */
    @JvmName("rgetlhjjgdiubiln")
    public fun tags(vararg values: Pair) {
        val toBeMapped = values.toMap()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.tags = mapped
    }

    /**
     * @param value Type of the data transfer.
     */
    @JvmName("bouajmmqdngwowkc")
    public suspend fun transferType(`value`: Either?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.transferType = mapped
    }

    /**
     * @param value Type of the data transfer.
     */
    @JvmName("jgshhokflfsycebq")
    public fun transferType(`value`: String) {
        val toBeMapped = Either.ofLeft(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.transferType = mapped
    }

    /**
     * @param value Type of the data transfer.
     */
    @JvmName("myltsvqoaoqpmkpf")
    public fun transferType(`value`: TransferType) {
        val toBeMapped = Either.ofRight(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.transferType = mapped
    }

    internal fun build(): JobArgs = JobArgs(
        deliveryInfo = deliveryInfo,
        deliveryType = deliveryType,
        details = details,
        identity = identity,
        jobName = jobName,
        location = location,
        resourceGroupName = resourceGroupName,
        sku = sku,
        tags = tags,
        transferType = transferType,
    )
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy