import * as pulumi from "@pulumi/pulumi"; import * as inputs from "../types/input"; import * as outputs from "../types/output"; /** * This resource provides the Asset resource in Oracle Cloud Infrastructure Cloud Bridge service. * Api doc link for the resource: https://docs.oracle.com/iaas/api/#/en/OCB/latest/Asset * * Example terraform configs related to the resource : https://github.com/oracle/terraform-provider-oci/tree/master/examples/cloudBridge * * Creates an asset. * * ## Example Usage * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as oci from "@pulumi/oci"; * * const testAsset = new oci.cloudbridge.Asset("test_asset", { * assetType: assetAssetType, * compartmentId: compartmentId, * externalAssetKey: assetExternalAssetKey, * inventoryId: testInventory.id, * sourceKey: assetSourceKey, * assetClassName: assetAssetClassName, * assetClassVersion: assetAssetClassVersion, * assetDetails: assetAssetDetails, * assetSourceIds: assetAssetSourceIds, * attachedEbsVolumesCost: { * amount: assetAttachedEbsVolumesCostAmount, * currencyCode: assetAttachedEbsVolumesCostCurrencyCode, * }, * awsEbs: { * attachments: [{ * device: assetAwsEbsAttachmentsDevice, * instanceKey: assetAwsEbsAttachmentsInstanceKey, * isDeleteOnTermination: assetAwsEbsAttachmentsIsDeleteOnTermination === "true", * status: assetAwsEbsAttachmentsStatus, * volumeKey: assetAwsEbsAttachmentsVolumeKey, * }], * availabilityZone: assetAwsEbsAvailabilityZone, * iops: Number(assetAwsEbsIops), * isEncrypted: assetAwsEbsIsEncrypted === "true", * isMultiAttachEnabled: assetAwsEbsIsMultiAttachEnabled === "true", * sizeInGiBs: Number(assetAwsEbsSizeInGiBs), * status: assetAwsEbsStatus, * tags: [{ * key: assetAwsEbsTagsKey, * value: assetAwsEbsTagsValue, * }], * throughput: Number(assetAwsEbsThroughput), * volumeKey: assetAwsEbsVolumeKey, * volumeType: assetAwsEbsVolumeType, * }, * awsEc2: { * architecture: assetAwsEc2Architecture, * areElasticInferenceAcceleratorsPresent: assetAwsEc2AreElasticInferenceAcceleratorsPresent === "true", * bootMode: assetAwsEc2BootMode, * capacityReservationKey: assetAwsEc2CapacityReservationKey, * imageKey: assetAwsEc2ImageKey, * instanceKey: assetAwsEc2InstanceKey, * instanceLifecycle: assetAwsEc2InstanceLifecycle, * instanceType: assetAwsEc2InstanceType, * ipAddress: assetAwsEc2IpAddress, * ipv6address: assetAwsEc2Ipv6address, * isEnclaveOptions: assetAwsEc2IsEnclaveOptions === "true", * isHibernationOptions: assetAwsEc2IsHibernationOptions === "true", * isSourceDestCheck: assetAwsEc2IsSourceDestCheck === "true", * isSpotInstance: assetAwsEc2IsSpotInstance === "true", * kernelKey: assetAwsEc2KernelKey, * licenses: assetAwsEc2Licenses, * maintenanceOptions: assetAwsEc2MaintenanceOptions, * monitoring: assetAwsEc2Monitoring, * networkInterfaces: [{ * association: { * carrierIp: assetAwsEc2NetworkInterfacesAssociationCarrierIp, * customerOwnedIp: assetAwsEc2NetworkInterfacesAssociationCustomerOwnedIp, * ipOwnerKey: assetAwsEc2NetworkInterfacesAssociationIpOwnerKey, * publicDnsName: assetAwsEc2NetworkInterfacesAssociationPublicDnsName, * publicIp: assetAwsEc2NetworkInterfacesAssociationPublicIp, * }, * attachment: { * attachmentKey: assetAwsEc2NetworkInterfacesAttachmentAttachmentKey, * deviceIndex: Number(assetAwsEc2NetworkInterfacesAttachmentDeviceIndex), * isDeleteOnTermination: assetAwsEc2NetworkInterfacesAttachmentIsDeleteOnTermination === "true", * networkCardIndex: Number(assetAwsEc2NetworkInterfacesAttachmentNetworkCardIndex), * status: assetAwsEc2NetworkInterfacesAttachmentStatus, * timeAttach: assetAwsEc2NetworkInterfacesAttachmentTimeAttach, * }, * description: assetAwsEc2NetworkInterfacesDescription, * interfaceType: assetAwsEc2NetworkInterfacesInterfaceType, * ipv4prefixes: assetAwsEc2NetworkInterfacesIpv4prefixes, * ipv6addresses: assetAwsEc2NetworkInterfacesIpv6addresses, * ipv6prefixes: assetAwsEc2NetworkInterfacesIpv6prefixes, * isSourceDestCheck: assetAwsEc2NetworkInterfacesIsSourceDestCheck === "true", * macAddress: assetAwsEc2NetworkInterfacesMacAddress, * networkInterfaceKey: assetAwsEc2NetworkInterfacesNetworkInterfaceKey, * ownerKey: assetAwsEc2NetworkInterfacesOwnerKey, * privateIpAddresses: [{ * association: { * carrierIp: assetAwsEc2NetworkInterfacesPrivateIpAddressesAssociationCarrierIp, * customerOwnedIp: assetAwsEc2NetworkInterfacesPrivateIpAddressesAssociationCustomerOwnedIp, * ipOwnerKey: assetAwsEc2NetworkInterfacesPrivateIpAddressesAssociationIpOwnerKey, * publicDnsName: assetAwsEc2NetworkInterfacesPrivateIpAddressesAssociationPublicDnsName, * publicIp: assetAwsEc2NetworkInterfacesPrivateIpAddressesAssociationPublicIp, * }, * isPrimary: assetAwsEc2NetworkInterfacesPrivateIpAddressesIsPrimary === "true", * privateDnsName: assetAwsEc2NetworkInterfacesPrivateIpAddressesPrivateDnsName, * privateIpAddress: assetAwsEc2NetworkInterfacesPrivateIpAddressesPrivateIpAddress, * }], * securityGroups: [{ * groupKey: assetAwsEc2NetworkInterfacesSecurityGroupsGroupKey, * groupName: testGroup.name, * }], * status: assetAwsEc2NetworkInterfacesStatus, * subnetKey: assetAwsEc2NetworkInterfacesSubnetKey, * }], * placement: { * affinity: assetAwsEc2PlacementAffinity, * availabilityZone: assetAwsEc2PlacementAvailabilityZone, * groupName: testGroup.name, * hostKey: assetAwsEc2PlacementHostKey, * hostResourceGroupArn: assetAwsEc2PlacementHostResourceGroupArn, * partitionNumber: Number(assetAwsEc2PlacementPartitionNumber), * spreadDomain: assetAwsEc2PlacementSpreadDomain, * tenancy: assetAwsEc2PlacementTenancy, * }, * privateDnsName: assetAwsEc2PrivateDnsName, * privateIpAddress: assetAwsEc2PrivateIpAddress, * rootDeviceName: assetAwsEc2RootDeviceName, * rootDeviceType: assetAwsEc2RootDeviceType, * securityGroups: [{ * groupKey: assetAwsEc2SecurityGroupsGroupKey, * groupName: testGroup.name, * }], * sriovNetSupport: assetAwsEc2SriovNetSupport, * state: { * code: Number(assetAwsEc2StateCode), * name: assetAwsEc2StateName, * }, * subnetKey: assetAwsEc2SubnetKey, * tags: [{ * key: assetAwsEc2TagsKey, * value: assetAwsEc2TagsValue, * }], * timeLaunch: assetAwsEc2TimeLaunch, * tpmSupport: assetAwsEc2TpmSupport, * virtualizationType: assetAwsEc2VirtualizationType, * vpcKey: assetAwsEc2VpcKey, * }, * awsEc2cost: { * amount: assetAwsEc2costAmount, * currencyCode: assetAwsEc2costCurrencyCode, * }, * compute: { * connectedNetworks: Number(assetComputeConnectedNetworks), * coresCount: Number(assetComputeCoresCount), * cpuModel: assetComputeCpuModel, * description: assetComputeDescription, * disks: [{ * bootOrder: Number(assetComputeDisksBootOrder), * isCbtEnabled: assetComputeDisksIsCbtEnabled === "true", * location: assetComputeDisksLocation, * name: assetComputeDisksName, * persistentMode: assetComputeDisksPersistentMode, * sizeInMbs: assetComputeDisksSizeInMbs, * uuid: assetComputeDisksUuid, * uuidLun: assetComputeDisksUuidLun, * }], * disksCount: Number(assetComputeDisksCount), * dnsName: assetComputeDnsName, * firmware: assetComputeFirmware, * gpuDevices: [{ * coresCount: Number(assetComputeGpuDevicesCoresCount), * description: assetComputeGpuDevicesDescription, * manufacturer: assetComputeGpuDevicesManufacturer, * memoryInMbs: assetComputeGpuDevicesMemoryInMbs, * name: assetComputeGpuDevicesName, * }], * gpuDevicesCount: Number(assetComputeGpuDevicesCount), * guestState: assetComputeGuestState, * hardwareVersion: assetComputeHardwareVersion, * hostName: assetComputeHostName, * isPmemEnabled: assetComputeIsPmemEnabled === "true", * isTpmEnabled: assetComputeIsTpmEnabled === "true", * latencySensitivity: assetComputeLatencySensitivity, * memoryInMbs: assetComputeMemoryInMbs, * nics: [{ * ipAddresses: assetComputeNicsIpAddresses, * label: assetComputeNicsLabel, * macAddress: assetComputeNicsMacAddress, * macAddressType: assetComputeNicsMacAddressType, * networkName: assetComputeNicsNetworkName, * switchName: assetComputeNicsSwitchName, * }], * nicsCount: Number(assetComputeNicsCount), * nvdimmController: { * busNumber: Number(assetComputeNvdimmControllerBusNumber), * label: assetComputeNvdimmControllerLabel, * }, * nvdimms: [{ * controllerKey: Number(assetComputeNvdimmsControllerKey), * label: assetComputeNvdimmsLabel, * unitNumber: Number(assetComputeNvdimmsUnitNumber), * }], * operatingSystem: assetComputeOperatingSystem, * operatingSystemVersion: assetComputeOperatingSystemVersion, * pmemInMbs: assetComputePmemInMbs, * powerState: assetComputePowerState, * primaryIp: assetComputePrimaryIp, * scsiController: { * label: assetComputeScsiControllerLabel, * sharedBus: assetComputeScsiControllerSharedBus, * unitNumber: Number(assetComputeScsiControllerUnitNumber), * }, * storageProvisionedInMbs: assetComputeStorageProvisionedInMbs, * threadsPerCoreCount: Number(assetComputeThreadsPerCoreCount), * }, * definedTags: { * "Operations.CostCenter": "42", * }, * displayName: assetDisplayName, * environmentType: assetEnvironmentType, * freeformTags: { * Department: "Finance", * }, * vm: { * hypervisorHost: assetVmHypervisorHost, * hypervisorVendor: assetVmHypervisorVendor, * hypervisorVersion: assetVmHypervisorVersion, * }, * vmwareVcenter: { * dataCenter: assetVmwareVcenterDataCenter, * vcenterKey: assetVmwareVcenterVcenterKey, * vcenterVersion: assetVmwareVcenterVcenterVersion, * }, * vmwareVm: { * cluster: assetVmwareVmCluster, * customerFields: assetVmwareVmCustomerFields, * customerTags: [{ * description: assetVmwareVmCustomerTagsDescription, * name: assetVmwareVmCustomerTagsName, * }], * faultToleranceBandwidth: Number(assetVmwareVmFaultToleranceBandwidth), * faultToleranceSecondaryLatency: Number(assetVmwareVmFaultToleranceSecondaryLatency), * faultToleranceState: assetVmwareVmFaultToleranceState, * instanceUuid: assetVmwareVmInstanceUuid, * isDisksCbtEnabled: assetVmwareVmIsDisksCbtEnabled === "true", * isDisksUuidEnabled: assetVmwareVmIsDisksUuidEnabled === "true", * path: assetVmwareVmPath, * vmwareToolsStatus: assetVmwareVmVmwareToolsStatus, * }, * }); * ``` * * ## Import * * Assets can be imported using the `id`, e.g. * * ```sh * $ pulumi import oci:CloudBridge/asset:Asset test_asset "id" * ``` */ export declare class Asset extends pulumi.CustomResource { /** * Get an existing Asset 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 Any extra arguments used during the lookup. * @param opts Optional settings to control the behavior of the CustomResource. */ static get(name: string, id: pulumi.Input, state?: AssetState, opts?: pulumi.CustomResourceOptions): Asset; /** * Returns true if the given object is an instance of Asset. This is designed to work even * when multiple copies of the Pulumi SDK have been loaded into the same process. */ static isInstance(obj: any): obj is Asset; /** * (Updatable) The class name of the asset. */ readonly assetClassName: pulumi.Output; /** * (Updatable) The version of the asset class. */ readonly assetClassVersion: pulumi.Output; /** * (Updatable) The details of the asset. */ readonly assetDetails: pulumi.Output; /** * (Updatable) List of asset source OCID. */ readonly assetSourceIds: pulumi.Output; /** * (Updatable) The type of asset. */ readonly assetType: pulumi.Output; /** * (Updatable) Cost information for monthly maintenance. */ readonly attachedEbsVolumesCost: pulumi.Output; /** * (Updatable) AWS EBS volume related properties. */ readonly awsEbs: pulumi.Output; /** * (Updatable) AWS virtual machine related properties. */ readonly awsEc2: pulumi.Output; /** * (Updatable) Cost information for monthly maintenance. */ readonly awsEc2cost: pulumi.Output; /** * (Updatable) The OCID of the compartment that the asset belongs to. */ readonly compartmentId: pulumi.Output; /** * (Updatable) Compute related properties. */ readonly compute: pulumi.Output; /** * (Updatable) The defined tags associated with this resource, if any. Each key is predefined and scoped to namespaces. For more information, see [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"Operations.CostCenter": "42"}` */ readonly definedTags: pulumi.Output<{ [key: string]: string; }>; /** * (Updatable) Asset display name. */ readonly displayName: pulumi.Output; /** * Specifies if this is the Source or Destination point for migration - different assets may be discovered depending on setting. */ readonly environmentType: pulumi.Output; /** * The key of the asset from the external environment. */ readonly externalAssetKey: pulumi.Output; /** * (Updatable) The freeform tags associated with this resource, if any. Each tag is a simple key-value pair with no predefined name, type, or namespace/scope. For more information, see [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"Department": "Finance"}` */ readonly freeformTags: pulumi.Output<{ [key: string]: string; }>; /** * Inventory ID to which an asset belongs. */ readonly inventoryId: pulumi.Output; /** * The source key to which the asset belongs. */ readonly sourceKey: pulumi.Output; /** * The current state of the asset. */ readonly state: pulumi.Output; /** * The system tags associated with this resource, if any. The system tags are set by Oracle cloud infrastructure services. Each key is predefined and scoped to namespaces. For more information, see [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{orcl-cloud: {free-tier-retain: true}}` */ readonly systemTags: pulumi.Output<{ [key: string]: string; }>; /** * The time when the asset was created. An RFC3339 formatted datetime string. */ readonly timeCreated: pulumi.Output; /** * The time when the asset was updated. An RFC3339 formatted datetime string. */ readonly timeUpdated: pulumi.Output; /** * (Updatable) Virtual machine related properties. */ readonly vm: pulumi.Output; /** * (Updatable) VMware vCenter related properties. */ readonly vmwareVcenter: pulumi.Output; /** * (Updatable) VMware virtual machine related properties. */ readonly vmwareVm: pulumi.Output; /** * Create a Asset resource with the given unique name, arguments, and options. * * @param name The _unique_ name of the resource. * @param args The arguments to use to populate this resource's properties. * @param opts A bag of options that control this resource's behavior. */ constructor(name: string, args: AssetArgs, opts?: pulumi.CustomResourceOptions); } /** * Input properties used for looking up and filtering Asset resources. */ export interface AssetState { /** * (Updatable) The class name of the asset. */ assetClassName?: pulumi.Input; /** * (Updatable) The version of the asset class. */ assetClassVersion?: pulumi.Input; /** * (Updatable) The details of the asset. */ assetDetails?: pulumi.Input; /** * (Updatable) List of asset source OCID. */ assetSourceIds?: pulumi.Input[] | undefined>; /** * (Updatable) The type of asset. */ assetType?: pulumi.Input; /** * (Updatable) Cost information for monthly maintenance. */ attachedEbsVolumesCost?: pulumi.Input; /** * (Updatable) AWS EBS volume related properties. */ awsEbs?: pulumi.Input; /** * (Updatable) AWS virtual machine related properties. */ awsEc2?: pulumi.Input; /** * (Updatable) Cost information for monthly maintenance. */ awsEc2cost?: pulumi.Input; /** * (Updatable) The OCID of the compartment that the asset belongs to. */ compartmentId?: pulumi.Input; /** * (Updatable) Compute related properties. */ compute?: pulumi.Input; /** * (Updatable) The defined tags associated with this resource, if any. Each key is predefined and scoped to namespaces. For more information, see [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"Operations.CostCenter": "42"}` */ definedTags?: pulumi.Input<{ [key: string]: pulumi.Input; } | undefined>; /** * (Updatable) Asset display name. */ displayName?: pulumi.Input; /** * Specifies if this is the Source or Destination point for migration - different assets may be discovered depending on setting. */ environmentType?: pulumi.Input; /** * The key of the asset from the external environment. */ externalAssetKey?: pulumi.Input; /** * (Updatable) The freeform tags associated with this resource, if any. Each tag is a simple key-value pair with no predefined name, type, or namespace/scope. For more information, see [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"Department": "Finance"}` */ freeformTags?: pulumi.Input<{ [key: string]: pulumi.Input; } | undefined>; /** * Inventory ID to which an asset belongs. */ inventoryId?: pulumi.Input; /** * The source key to which the asset belongs. */ sourceKey?: pulumi.Input; /** * The current state of the asset. */ state?: pulumi.Input; /** * The system tags associated with this resource, if any. The system tags are set by Oracle cloud infrastructure services. Each key is predefined and scoped to namespaces. For more information, see [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{orcl-cloud: {free-tier-retain: true}}` */ systemTags?: pulumi.Input<{ [key: string]: pulumi.Input; } | undefined>; /** * The time when the asset was created. An RFC3339 formatted datetime string. */ timeCreated?: pulumi.Input; /** * The time when the asset was updated. An RFC3339 formatted datetime string. */ timeUpdated?: pulumi.Input; /** * (Updatable) Virtual machine related properties. */ vm?: pulumi.Input; /** * (Updatable) VMware vCenter related properties. */ vmwareVcenter?: pulumi.Input; /** * (Updatable) VMware virtual machine related properties. */ vmwareVm?: pulumi.Input; } /** * The set of arguments for constructing a Asset resource. */ export interface AssetArgs { /** * (Updatable) The class name of the asset. */ assetClassName?: pulumi.Input; /** * (Updatable) The version of the asset class. */ assetClassVersion?: pulumi.Input; /** * (Updatable) The details of the asset. */ assetDetails?: pulumi.Input; /** * (Updatable) List of asset source OCID. */ assetSourceIds?: pulumi.Input[] | undefined>; /** * (Updatable) The type of asset. */ assetType: pulumi.Input; /** * (Updatable) Cost information for monthly maintenance. */ attachedEbsVolumesCost?: pulumi.Input; /** * (Updatable) AWS EBS volume related properties. */ awsEbs?: pulumi.Input; /** * (Updatable) AWS virtual machine related properties. */ awsEc2?: pulumi.Input; /** * (Updatable) Cost information for monthly maintenance. */ awsEc2cost?: pulumi.Input; /** * (Updatable) The OCID of the compartment that the asset belongs to. */ compartmentId: pulumi.Input; /** * (Updatable) Compute related properties. */ compute?: pulumi.Input; /** * (Updatable) The defined tags associated with this resource, if any. Each key is predefined and scoped to namespaces. For more information, see [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"Operations.CostCenter": "42"}` */ definedTags?: pulumi.Input<{ [key: string]: pulumi.Input; } | undefined>; /** * (Updatable) Asset display name. */ displayName?: pulumi.Input; /** * The key of the asset from the external environment. */ externalAssetKey: pulumi.Input; /** * (Updatable) The freeform tags associated with this resource, if any. Each tag is a simple key-value pair with no predefined name, type, or namespace/scope. For more information, see [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"Department": "Finance"}` */ freeformTags?: pulumi.Input<{ [key: string]: pulumi.Input; } | undefined>; /** * Inventory ID to which an asset belongs. */ inventoryId: pulumi.Input; /** * The source key to which the asset belongs. */ sourceKey: pulumi.Input; /** * (Updatable) Virtual machine related properties. */ vm?: pulumi.Input; /** * (Updatable) VMware vCenter related properties. */ vmwareVcenter?: pulumi.Input; /** * (Updatable) VMware virtual machine related properties. */ vmwareVm?: pulumi.Input; } //# sourceMappingURL=asset.d.ts.map