import * as pulumi from "@pulumi/pulumi"; import * as inputs from "../types/input"; import * as outputs from "../types/output"; /** * This resource provides the Instance Pool resource in Oracle Cloud Infrastructure Core service. * Api doc link for the resource: https://docs.oracle.com/iaas/api/#/en/iaas/latest/InstancePool * * Example terraform configs related to the resource : https://github.com/oracle/terraform-provider-oci/tree/master/examples/ * * Creates an instance pool. * * To determine whether capacity is available for a specific shape before you create an instance pool, * use the [CreateComputeCapacityReport](https://docs.cloud.oracle.com/iaas/api/#/en/iaas/latest/ComputeCapacityReport/CreateComputeCapacityReport) * operation. * * ## Example Usage * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as oci from "@pulumi/oci"; * * const testInstancePool = new oci.core.InstancePool("test_instance_pool", { * compartmentId: compartmentId, * instanceConfigurationId: testInstanceConfiguration.id, * placementConfigurations: [{ * availabilityDomain: instancePoolPlacementConfigurationsAvailabilityDomain, * computeClusterId: testComputeCluster.id, * faultDomains: instancePoolPlacementConfigurationsFaultDomains, * primarySubnetId: testSubnet.id, * primaryVnicSubnets: { * subnetId: testSubnet.id, * ipv6addressIpv6subnetCidrPairDetails: [{ * ipv6subnetCidr: instancePoolPlacementConfigurationsPrimaryVnicSubnetsIpv6addressIpv6subnetCidrPairDetailsIpv6subnetCidr, * }], * isAssignIpv6ip: instancePoolPlacementConfigurationsPrimaryVnicSubnetsIsAssignIpv6ip === "true", * }, * secondaryVnicSubnets: [{ * subnetId: testSubnet.id, * displayName: instancePoolPlacementConfigurationsSecondaryVnicSubnetsDisplayName, * ipv6addressIpv6subnetCidrPairDetails: [{ * ipv6subnetCidr: instancePoolPlacementConfigurationsSecondaryVnicSubnetsIpv6addressIpv6subnetCidrPairDetailsIpv6subnetCidr, * }], * isAssignIpv6ip: instancePoolPlacementConfigurationsSecondaryVnicSubnetsIsAssignIpv6ip === "true", * }], * }], * size: Number(instancePoolSize), * definedTags: { * "Operations.CostCenter": "42", * }, * displayName: instancePoolDisplayName, * freeformTags: { * Department: "Finance", * }, * instanceDisplayNameFormatter: instancePoolInstanceDisplayNameFormatter, * instanceHostnameFormatter: instancePoolInstanceHostnameFormatter, * lifecycleManagement: { * lifecycleActions: { * preTermination: { * isEnabled: instancePoolLifecycleManagementLifecycleActionsPreTerminationIsEnabled === "true", * onTimeout: { * preserveBlockVolumeMode: instancePoolLifecycleManagementLifecycleActionsPreTerminationOnTimeoutPreserveBlockVolumeMode, * preserveBootVolumeMode: instancePoolLifecycleManagementLifecycleActionsPreTerminationOnTimeoutPreserveBootVolumeMode, * }, * timeout: Number(instancePoolLifecycleManagementLifecycleActionsPreTerminationTimeout), * }, * }, * }, * loadBalancers: [{ * backendSetName: testBackendSet.name, * loadBalancerId: testLoadBalancer.id, * port: Number(instancePoolLoadBalancersPort), * vnicSelection: instancePoolLoadBalancersVnicSelection, * }], * }); * ``` * * ## Import * * InstancePools can be imported using the `id`, e.g. * * ```sh * $ pulumi import oci:Core/instancePool:InstancePool test_instance_pool "id" * ``` */ export declare class InstancePool extends pulumi.CustomResource { /** * Get an existing InstancePool 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?: InstancePoolState, opts?: pulumi.CustomResourceOptions): InstancePool; /** * Returns true if the given object is an instance of InstancePool. 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 InstancePool; /** * The number of actual instances in the instance pool on the cloud. This attribute will be different when instance pool is used along with autoScaling Configuration. */ readonly actualSize: pulumi.Output; /** * (Updatable) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the compartment containing the instance pool. */ readonly compartmentId: pulumi.Output; /** * Count of instance in running state associated to the Instance Pool. */ readonly currentSize: pulumi.Output; /** * (Updatable) Defined tags for this resource. Each key is predefined and scoped to a namespace. 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) A user-friendly name. Does not have to be unique, and it's changeable. Avoid entering confidential information. */ readonly displayName: pulumi.Output; /** * (Updatable) Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. 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; }>; /** * (Updatable) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the instance configuration associated with the instance pool. */ readonly instanceConfigurationId: pulumi.Output; /** * (Updatable) A user-friendly formatter for the instance pool's instances. Instance displaynames follow the format. The formatter does not retroactively change instance's displaynames, only instance displaynames in the future follow the format */ readonly instanceDisplayNameFormatter: pulumi.Output; /** * (Updatable) A user-friendly formatter for the instance pool's instances. Instance hostnames follow the format. The formatter does not retroactively change instance's hostnames, only instance hostnames in the future follow the format */ readonly instanceHostnameFormatter: pulumi.Output; /** * (Updatable) The lifecycle management options for the instance pool. */ readonly lifecycleManagement: pulumi.Output; /** * The load balancers to attach to the instance pool. (Note: From 6.16.0 loadBalancers field in oci.Core.InstancePool is changed from TypeList to TypeSet - to support load balancer insert operation. Also, LB cant by accessed by index) */ readonly loadBalancers: pulumi.Output; /** * (Updatable) The placement configurations for the instance pool. Provide one placement configuration for each availability domain. * * To use the instance pool with a regional subnet, provide a placement configuration for each availability domain, and include the regional subnet in each placement configuration. To use compute cluster with instance pool, provide a single placement configuration. */ readonly placementConfigurations: pulumi.Output; /** * The type of resources managed by the pool. */ readonly poolType: pulumi.Output; /** * (Updatable) The number of instances that should be in the instance pool. Modifying this value will override the size of the instance pool. If the instance pool is linked with autoscaling configuration, autoscaling configuration could resize the instance pool at a later point. The instance pool's actual size may differ from the configured size if it is associated with an autoscaling configuration, instance pool's actual size will be reflected in this size attribute. For a GMC-enabled resource pool, this is the number of GMC resources that should be in the pool. */ readonly size: pulumi.Output; /** * (Updatable) The target state for the instance pool update operation (ignored at create time and should not be set). Could be set to RUNNING or STOPPED. * * ** IMPORTANT ** * Any change to a property that does not support update will force the destruction and recreation of the resource with the new property values */ readonly state: pulumi.Output; /** * The date and time the instance pool was created, in the format defined by [RFC3339](https://tools.ietf.org/html/rfc3339). Example: `2016-08-25T21:10:29.600Z` */ readonly timeCreated: pulumi.Output; /** * Create a InstancePool 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: InstancePoolArgs, opts?: pulumi.CustomResourceOptions); } /** * Input properties used for looking up and filtering InstancePool resources. */ export interface InstancePoolState { /** * The number of actual instances in the instance pool on the cloud. This attribute will be different when instance pool is used along with autoScaling Configuration. */ actualSize?: pulumi.Input; /** * (Updatable) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the compartment containing the instance pool. */ compartmentId?: pulumi.Input; /** * Count of instance in running state associated to the Instance Pool. */ currentSize?: pulumi.Input; /** * (Updatable) Defined tags for this resource. Each key is predefined and scoped to a namespace. 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) A user-friendly name. Does not have to be unique, and it's changeable. Avoid entering confidential information. */ displayName?: pulumi.Input; /** * (Updatable) Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. 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>; /** * (Updatable) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the instance configuration associated with the instance pool. */ instanceConfigurationId?: pulumi.Input; /** * (Updatable) A user-friendly formatter for the instance pool's instances. Instance displaynames follow the format. The formatter does not retroactively change instance's displaynames, only instance displaynames in the future follow the format */ instanceDisplayNameFormatter?: pulumi.Input; /** * (Updatable) A user-friendly formatter for the instance pool's instances. Instance hostnames follow the format. The formatter does not retroactively change instance's hostnames, only instance hostnames in the future follow the format */ instanceHostnameFormatter?: pulumi.Input; /** * (Updatable) The lifecycle management options for the instance pool. */ lifecycleManagement?: pulumi.Input; /** * The load balancers to attach to the instance pool. (Note: From 6.16.0 loadBalancers field in oci.Core.InstancePool is changed from TypeList to TypeSet - to support load balancer insert operation. Also, LB cant by accessed by index) */ loadBalancers?: pulumi.Input[] | undefined>; /** * (Updatable) The placement configurations for the instance pool. Provide one placement configuration for each availability domain. * * To use the instance pool with a regional subnet, provide a placement configuration for each availability domain, and include the regional subnet in each placement configuration. To use compute cluster with instance pool, provide a single placement configuration. */ placementConfigurations?: pulumi.Input[] | undefined>; /** * The type of resources managed by the pool. */ poolType?: pulumi.Input; /** * (Updatable) The number of instances that should be in the instance pool. Modifying this value will override the size of the instance pool. If the instance pool is linked with autoscaling configuration, autoscaling configuration could resize the instance pool at a later point. The instance pool's actual size may differ from the configured size if it is associated with an autoscaling configuration, instance pool's actual size will be reflected in this size attribute. For a GMC-enabled resource pool, this is the number of GMC resources that should be in the pool. */ size?: pulumi.Input; /** * (Updatable) The target state for the instance pool update operation (ignored at create time and should not be set). Could be set to RUNNING or STOPPED. * * ** IMPORTANT ** * Any change to a property that does not support update will force the destruction and recreation of the resource with the new property values */ state?: pulumi.Input; /** * The date and time the instance pool was created, in the format defined by [RFC3339](https://tools.ietf.org/html/rfc3339). Example: `2016-08-25T21:10:29.600Z` */ timeCreated?: pulumi.Input; } /** * The set of arguments for constructing a InstancePool resource. */ export interface InstancePoolArgs { /** * (Updatable) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the compartment containing the instance pool. */ compartmentId: pulumi.Input; /** * (Updatable) Defined tags for this resource. Each key is predefined and scoped to a namespace. 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) A user-friendly name. Does not have to be unique, and it's changeable. Avoid entering confidential information. */ displayName?: pulumi.Input; /** * (Updatable) Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. 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>; /** * (Updatable) The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the instance configuration associated with the instance pool. */ instanceConfigurationId: pulumi.Input; /** * (Updatable) A user-friendly formatter for the instance pool's instances. Instance displaynames follow the format. The formatter does not retroactively change instance's displaynames, only instance displaynames in the future follow the format */ instanceDisplayNameFormatter?: pulumi.Input; /** * (Updatable) A user-friendly formatter for the instance pool's instances. Instance hostnames follow the format. The formatter does not retroactively change instance's hostnames, only instance hostnames in the future follow the format */ instanceHostnameFormatter?: pulumi.Input; /** * (Updatable) The lifecycle management options for the instance pool. */ lifecycleManagement?: pulumi.Input; /** * The load balancers to attach to the instance pool. (Note: From 6.16.0 loadBalancers field in oci.Core.InstancePool is changed from TypeList to TypeSet - to support load balancer insert operation. Also, LB cant by accessed by index) */ loadBalancers?: pulumi.Input[] | undefined>; /** * (Updatable) The placement configurations for the instance pool. Provide one placement configuration for each availability domain. * * To use the instance pool with a regional subnet, provide a placement configuration for each availability domain, and include the regional subnet in each placement configuration. To use compute cluster with instance pool, provide a single placement configuration. */ placementConfigurations: pulumi.Input[]>; /** * (Updatable) The number of instances that should be in the instance pool. Modifying this value will override the size of the instance pool. If the instance pool is linked with autoscaling configuration, autoscaling configuration could resize the instance pool at a later point. The instance pool's actual size may differ from the configured size if it is associated with an autoscaling configuration, instance pool's actual size will be reflected in this size attribute. For a GMC-enabled resource pool, this is the number of GMC resources that should be in the pool. */ size: pulumi.Input; /** * (Updatable) The target state for the instance pool update operation (ignored at create time and should not be set). Could be set to RUNNING or STOPPED. * * ** IMPORTANT ** * Any change to a property that does not support update will force the destruction and recreation of the resource with the new property values */ state?: pulumi.Input; } //# sourceMappingURL=instancePool.d.ts.map