import * as pulumi from "@pulumi/pulumi"; /** * This resource provides the Bastion resource in Oracle Cloud Infrastructure Bastion service. * Api doc link for the resource: https://docs.oracle.com/iaas/api/#/en/bastion/latest/Bastion * * Example terraform configs related to the resource : https://github.com/oracle/terraform-provider-oci/tree/master/examples/bastion * * Creates a new bastion. A bastion provides secured, public access to target resources in the cloud that you cannot otherwise reach from the internet. A bastion resides in a public subnet and establishes the network infrastructure needed to connect a user to a target resource in a private subnet. * * ## Example Usage * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as oci from "@pulumi/oci"; * * const testBastion = new oci.bastion.Bastion("test_bastion", { * bastionType: bastionBastionType, * compartmentId: compartmentId, * targetSubnetId: testSubnet.id, * clientCidrBlockAllowLists: bastionClientCidrBlockAllowList, * definedTags: { * "foo-namespace.bar-key": "value", * }, * dnsProxyStatus: bastionDnsProxyStatus, * freeformTags: { * "bar-key": "value", * }, * maxSessionTtlInSeconds: Number(bastionMaxSessionTtlInSeconds), * name: bastionName, * phoneBookEntry: bastionPhoneBookEntry, * securityAttributes: bastionSecurityAttributes, * staticJumpHostIpAddresses: bastionStaticJumpHostIpAddresses, * }); * ``` * * ## Import * * Bastions can be imported using the `id`, e.g. * * ```sh * $ pulumi import oci:Bastion/bastion:Bastion test_bastion "id" * ``` */ export declare class Bastion extends pulumi.CustomResource { /** * Get an existing Bastion 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?: BastionState, opts?: pulumi.CustomResourceOptions): Bastion; /** * Returns true if the given object is an instance of Bastion. 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 Bastion; /** * The type of bastion. Use `standard`. */ readonly bastionType: pulumi.Output; /** * (Updatable) A list of address ranges in CIDR notation that you want to allow to connect to sessions hosted by this bastion. */ readonly clientCidrBlockAllowLists: pulumi.Output; /** * (Updatable) The unique identifier (OCID) of the compartment where the bastion is located. */ readonly compartmentId: pulumi.Output; /** * (Updatable) Defined tags for this resource. Each key is predefined and scoped to a namespace. Example: `{"foo-namespace.bar-key": "value"}` */ readonly definedTags: pulumi.Output<{ [key: string]: string; }>; /** * Flag to enable FQDN and SOCKS5 Proxy Support. Example: `ENABLED`, `DISABLED` */ readonly dnsProxyStatus: pulumi.Output; /** * (Updatable) Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only. Example: `{"bar-key": "value"}` */ readonly freeformTags: pulumi.Output<{ [key: string]: string; }>; /** * A message describing the current state in more detail. */ readonly lifecycleDetails: pulumi.Output; /** * (Updatable) The maximum amount of time that any session on the bastion can remain active. */ readonly maxSessionTtlInSeconds: pulumi.Output; /** * The maximum number of active sessions allowed on the bastion. */ readonly maxSessionsAllowed: pulumi.Output; /** * The name of the bastion, which can't be changed after creation. */ readonly name: pulumi.Output; /** * The phonebook entry of the customer's team, which can't be changed after creation. Not applicable to `standard` bastions. */ readonly phoneBookEntry: pulumi.Output; /** * The private IP address of the created private endpoint. */ readonly privateEndpointIpAddress: pulumi.Output; /** * (Updatable) Security Attributes for this resource. This is unique to ZPR, and helps identify which resources are allowed to be accessed by what permission controls. Example: `{"Oracle-DataSecurity-ZPR.MaxEgressCount.value": "42", "Oracle-DataSecurity-ZPR.MaxEgressCount.mode": "audit"}` */ readonly securityAttributes: pulumi.Output<{ [key: string]: string; }>; /** * The current state of the bastion. */ readonly state: pulumi.Output; /** * (Updatable) A list of IP addresses of the hosts that the bastion has access to. Not applicable to `standard` bastions. */ readonly staticJumpHostIpAddresses: pulumi.Output; /** * Usage of system tag keys. These predefined keys are scoped to namespaces. Example: `{"orcl-cloud.free-tier-retained": "true"}` */ readonly systemTags: pulumi.Output<{ [key: string]: string; }>; /** * The unique identifier (OCID) of the subnet that the bastion connects to. * * ** 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 targetSubnetId: pulumi.Output; /** * The unique identifier (OCID) of the virtual cloud network (VCN) that the bastion connects to. */ readonly targetVcnId: pulumi.Output; /** * The time the bastion was created. Format is defined by [RFC3339](https://tools.ietf.org/html/rfc3339). Example: `2020-01-25T21:10:29.600Z` */ readonly timeCreated: pulumi.Output; /** * The time the bastion was updated. Format is defined by [RFC3339](https://tools.ietf.org/html/rfc3339). Example: `2020-01-25T21:10:29.600Z` */ readonly timeUpdated: pulumi.Output; /** * Create a Bastion 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: BastionArgs, opts?: pulumi.CustomResourceOptions); } /** * Input properties used for looking up and filtering Bastion resources. */ export interface BastionState { /** * The type of bastion. Use `standard`. */ bastionType?: pulumi.Input; /** * (Updatable) A list of address ranges in CIDR notation that you want to allow to connect to sessions hosted by this bastion. */ clientCidrBlockAllowLists?: pulumi.Input[] | undefined>; /** * (Updatable) The unique identifier (OCID) of the compartment where the bastion is located. */ compartmentId?: pulumi.Input; /** * (Updatable) Defined tags for this resource. Each key is predefined and scoped to a namespace. Example: `{"foo-namespace.bar-key": "value"}` */ definedTags?: pulumi.Input<{ [key: string]: pulumi.Input; } | undefined>; /** * Flag to enable FQDN and SOCKS5 Proxy Support. Example: `ENABLED`, `DISABLED` */ dnsProxyStatus?: pulumi.Input; /** * (Updatable) Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only. Example: `{"bar-key": "value"}` */ freeformTags?: pulumi.Input<{ [key: string]: pulumi.Input; } | undefined>; /** * A message describing the current state in more detail. */ lifecycleDetails?: pulumi.Input; /** * (Updatable) The maximum amount of time that any session on the bastion can remain active. */ maxSessionTtlInSeconds?: pulumi.Input; /** * The maximum number of active sessions allowed on the bastion. */ maxSessionsAllowed?: pulumi.Input; /** * The name of the bastion, which can't be changed after creation. */ name?: pulumi.Input; /** * The phonebook entry of the customer's team, which can't be changed after creation. Not applicable to `standard` bastions. */ phoneBookEntry?: pulumi.Input; /** * The private IP address of the created private endpoint. */ privateEndpointIpAddress?: pulumi.Input; /** * (Updatable) Security Attributes for this resource. This is unique to ZPR, and helps identify which resources are allowed to be accessed by what permission controls. Example: `{"Oracle-DataSecurity-ZPR.MaxEgressCount.value": "42", "Oracle-DataSecurity-ZPR.MaxEgressCount.mode": "audit"}` */ securityAttributes?: pulumi.Input<{ [key: string]: pulumi.Input; } | undefined>; /** * The current state of the bastion. */ state?: pulumi.Input; /** * (Updatable) A list of IP addresses of the hosts that the bastion has access to. Not applicable to `standard` bastions. */ staticJumpHostIpAddresses?: pulumi.Input[] | undefined>; /** * Usage of system tag keys. These predefined keys are scoped to namespaces. Example: `{"orcl-cloud.free-tier-retained": "true"}` */ systemTags?: pulumi.Input<{ [key: string]: pulumi.Input; } | undefined>; /** * The unique identifier (OCID) of the subnet that the bastion connects to. * * ** 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 */ targetSubnetId?: pulumi.Input; /** * The unique identifier (OCID) of the virtual cloud network (VCN) that the bastion connects to. */ targetVcnId?: pulumi.Input; /** * The time the bastion was created. Format is defined by [RFC3339](https://tools.ietf.org/html/rfc3339). Example: `2020-01-25T21:10:29.600Z` */ timeCreated?: pulumi.Input; /** * The time the bastion was updated. Format is defined by [RFC3339](https://tools.ietf.org/html/rfc3339). Example: `2020-01-25T21:10:29.600Z` */ timeUpdated?: pulumi.Input; } /** * The set of arguments for constructing a Bastion resource. */ export interface BastionArgs { /** * The type of bastion. Use `standard`. */ bastionType: pulumi.Input; /** * (Updatable) A list of address ranges in CIDR notation that you want to allow to connect to sessions hosted by this bastion. */ clientCidrBlockAllowLists?: pulumi.Input[] | undefined>; /** * (Updatable) The unique identifier (OCID) of the compartment where the bastion is located. */ compartmentId: pulumi.Input; /** * (Updatable) Defined tags for this resource. Each key is predefined and scoped to a namespace. Example: `{"foo-namespace.bar-key": "value"}` */ definedTags?: pulumi.Input<{ [key: string]: pulumi.Input; } | undefined>; /** * Flag to enable FQDN and SOCKS5 Proxy Support. Example: `ENABLED`, `DISABLED` */ dnsProxyStatus?: pulumi.Input; /** * (Updatable) Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only. Example: `{"bar-key": "value"}` */ freeformTags?: pulumi.Input<{ [key: string]: pulumi.Input; } | undefined>; /** * (Updatable) The maximum amount of time that any session on the bastion can remain active. */ maxSessionTtlInSeconds?: pulumi.Input; /** * The name of the bastion, which can't be changed after creation. */ name?: pulumi.Input; /** * The phonebook entry of the customer's team, which can't be changed after creation. Not applicable to `standard` bastions. */ phoneBookEntry?: pulumi.Input; /** * (Updatable) Security Attributes for this resource. This is unique to ZPR, and helps identify which resources are allowed to be accessed by what permission controls. Example: `{"Oracle-DataSecurity-ZPR.MaxEgressCount.value": "42", "Oracle-DataSecurity-ZPR.MaxEgressCount.mode": "audit"}` */ securityAttributes?: pulumi.Input<{ [key: string]: pulumi.Input; } | undefined>; /** * (Updatable) A list of IP addresses of the hosts that the bastion has access to. Not applicable to `standard` bastions. */ staticJumpHostIpAddresses?: pulumi.Input[] | undefined>; /** * The unique identifier (OCID) of the subnet that the bastion connects to. * * ** 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 */ targetSubnetId: pulumi.Input; } //# sourceMappingURL=bastion.d.ts.map