import * as pulumi from "@pulumi/pulumi"; import * as inputs from "../types/input"; import * as outputs from "../types/output"; /** * This resource provides the Private Endpoint resource in Oracle Cloud Infrastructure Object Storage service. * It enables private network access from a specified subnet to Object Storage without traversing the public internet. * * Example terraform configs related to the resource : https://github.com/oracle/terraform-provider-oci/tree/master/examples/object_storage/private_endpoint * * Creates an Object Storage Private Endpoint in a specified subnet, with access scoping for namespace, compartment, and bucket. * * ## Example Usage * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as oci from "@pulumi/oci"; * * const pe = new oci.objectstorage.PrivateEndpoint("pe", { * compartmentId: compartmentOcid, * namespace: namespaceName, * name: peName, * subnetId: testSubnet1.id, * prefix: dnsPrefix, * accessTargets: [{ * namespace: "*", * compartmentId: "*", * bucket: "*", * }], * }); * ``` * * ## Import * * Private endpoints can be imported using the `namespaceName` and the `name` of the private endpoint. * * ```sh * $ pulumi import oci:ObjectStorage/privateEndpoint:PrivateEndpoint test_pe "n/{namespaceName}/pe/{peName}" * ``` */ export declare class PrivateEndpoint extends pulumi.CustomResource { /** * Get an existing PrivateEndpoint 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?: PrivateEndpointState, opts?: pulumi.CustomResourceOptions): PrivateEndpoint; /** * Returns true if the given object is an instance of PrivateEndpoint. 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 PrivateEndpoint; /** * (Updatable) When you create a private endpoint, you can restrict access to certain Object Storage resources by specifying access targets (limit of 10). Each access target consists of the following required parameters: namespace, compartmentId and bucket. */ readonly accessTargets: pulumi.Output; /** * A list of additional prefixes that you can provide along with any other prefix. These resulting endpointFqdn's are added to the customer VCN's DNS record. */ readonly additionalPrefixes: pulumi.Output; /** * The ID of the compartment in which to create the private endpoint. */ readonly compartmentId: pulumi.Output; /** * The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the user who created the private endpoint. */ readonly createdBy: 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; }>; /** * The entity tag for the Private Endpoint. */ readonly etag: pulumi.Output; /** * The object representing FQDN details formed using prefix and additionalPrefixes. */ readonly fqdns: pulumi.Output<{ [key: string]: { [key: string]: { [key: string]: string; }; }; } | undefined>; /** * (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; }>; /** * The name of the private endpoint. Valid characters are uppercase or lowercase letters, numbers, hyphens, and periods. Private Endpoint names must be unique within an Object Storage namespace. Avoid entering confidential information. example: Example: my-pe1 */ readonly name: pulumi.Output; /** * The Object Storage namespace used for the request. */ readonly namespace: pulumi.Output; /** * A list of the OCIDs of the network security groups (NSGs) to add the private endpoint's VNIC to. For more information about NSGs, see [NetworkSecurityGroup](https://docs.oracle.com/en-us/iaas/Content/Network/Concepts/networksecuritygroups.htm). */ readonly nsgIds: pulumi.Output; /** * The DNS prefix value is part of the URL used to access Object Storage. The DNS prefix is a case-insensitive string using alpha-numeric characters (no special characters). It must be unique within the VCN. */ readonly prefix: pulumi.Output; /** * The private IP address that is to be assigned to this private endpoint. If it's not available, an error is returned. If you do not provide a value, an available IP address in the subnet is automatically chosen. If you do not provide a value, an available IP address in the subnet is automatically chosen. */ readonly privateEndpointIp: pulumi.Output; readonly securityAttributes: pulumi.Output<{ [key: string]: string; }>; /** * The lifecycle state of the private endpoint resource. */ readonly state: pulumi.Output; /** * The ID of the subnet that the private endpoint VNIC will be created and reside in. * * ** 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 subnetId: pulumi.Output; /** * The date and time the private endpoint was created, as described in [RFC 2616](https://tools.ietf.org/html/rfc2616#section-14.29). */ readonly timeCreated: pulumi.Output; /** * The date and time the private endpoint was updated, as described in [RFC 2616](https://tools.ietf.org/html/rfc2616#section-14.29). */ readonly timeModified: pulumi.Output; /** * Create a PrivateEndpoint 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: PrivateEndpointArgs, opts?: pulumi.CustomResourceOptions); } /** * Input properties used for looking up and filtering PrivateEndpoint resources. */ export interface PrivateEndpointState { /** * (Updatable) When you create a private endpoint, you can restrict access to certain Object Storage resources by specifying access targets (limit of 10). Each access target consists of the following required parameters: namespace, compartmentId and bucket. */ accessTargets?: pulumi.Input[] | undefined>; /** * A list of additional prefixes that you can provide along with any other prefix. These resulting endpointFqdn's are added to the customer VCN's DNS record. */ additionalPrefixes?: pulumi.Input[] | undefined>; /** * The ID of the compartment in which to create the private endpoint. */ compartmentId?: pulumi.Input; /** * The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the user who created the private endpoint. */ createdBy?: 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>; /** * The entity tag for the Private Endpoint. */ etag?: pulumi.Input; /** * The object representing FQDN details formed using prefix and additionalPrefixes. */ fqdns?: pulumi.Input<{ [key: string]: pulumi.Input<{ [key: string]: pulumi.Input<{ [key: string]: pulumi.Input; }>; }>; } | undefined>; /** * (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>; /** * The name of the private endpoint. Valid characters are uppercase or lowercase letters, numbers, hyphens, and periods. Private Endpoint names must be unique within an Object Storage namespace. Avoid entering confidential information. example: Example: my-pe1 */ name?: pulumi.Input; /** * The Object Storage namespace used for the request. */ namespace?: pulumi.Input; /** * A list of the OCIDs of the network security groups (NSGs) to add the private endpoint's VNIC to. For more information about NSGs, see [NetworkSecurityGroup](https://docs.oracle.com/en-us/iaas/Content/Network/Concepts/networksecuritygroups.htm). */ nsgIds?: pulumi.Input[] | undefined>; /** * The DNS prefix value is part of the URL used to access Object Storage. The DNS prefix is a case-insensitive string using alpha-numeric characters (no special characters). It must be unique within the VCN. */ prefix?: pulumi.Input; /** * The private IP address that is to be assigned to this private endpoint. If it's not available, an error is returned. If you do not provide a value, an available IP address in the subnet is automatically chosen. If you do not provide a value, an available IP address in the subnet is automatically chosen. */ privateEndpointIp?: pulumi.Input; securityAttributes?: pulumi.Input<{ [key: string]: pulumi.Input; } | undefined>; /** * The lifecycle state of the private endpoint resource. */ state?: pulumi.Input; /** * The ID of the subnet that the private endpoint VNIC will be created and reside in. * * ** 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 */ subnetId?: pulumi.Input; /** * The date and time the private endpoint was created, as described in [RFC 2616](https://tools.ietf.org/html/rfc2616#section-14.29). */ timeCreated?: pulumi.Input; /** * The date and time the private endpoint was updated, as described in [RFC 2616](https://tools.ietf.org/html/rfc2616#section-14.29). */ timeModified?: pulumi.Input; } /** * The set of arguments for constructing a PrivateEndpoint resource. */ export interface PrivateEndpointArgs { /** * (Updatable) When you create a private endpoint, you can restrict access to certain Object Storage resources by specifying access targets (limit of 10). Each access target consists of the following required parameters: namespace, compartmentId and bucket. */ accessTargets: pulumi.Input[]>; /** * A list of additional prefixes that you can provide along with any other prefix. These resulting endpointFqdn's are added to the customer VCN's DNS record. */ additionalPrefixes?: pulumi.Input[] | undefined>; /** * The ID of the compartment in which to create the private endpoint. */ 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>; /** * The object representing FQDN details formed using prefix and additionalPrefixes. */ fqdns?: pulumi.Input<{ [key: string]: pulumi.Input<{ [key: string]: pulumi.Input<{ [key: string]: pulumi.Input; }>; }>; } | undefined>; /** * (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>; /** * The name of the private endpoint. Valid characters are uppercase or lowercase letters, numbers, hyphens, and periods. Private Endpoint names must be unique within an Object Storage namespace. Avoid entering confidential information. example: Example: my-pe1 */ name?: pulumi.Input; /** * The Object Storage namespace used for the request. */ namespace: pulumi.Input; /** * A list of the OCIDs of the network security groups (NSGs) to add the private endpoint's VNIC to. For more information about NSGs, see [NetworkSecurityGroup](https://docs.oracle.com/en-us/iaas/Content/Network/Concepts/networksecuritygroups.htm). */ nsgIds?: pulumi.Input[] | undefined>; /** * The DNS prefix value is part of the URL used to access Object Storage. The DNS prefix is a case-insensitive string using alpha-numeric characters (no special characters). It must be unique within the VCN. */ prefix: pulumi.Input; /** * The private IP address that is to be assigned to this private endpoint. If it's not available, an error is returned. If you do not provide a value, an available IP address in the subnet is automatically chosen. If you do not provide a value, an available IP address in the subnet is automatically chosen. */ privateEndpointIp?: pulumi.Input; securityAttributes?: pulumi.Input<{ [key: string]: pulumi.Input; } | undefined>; /** * The lifecycle state of the private endpoint resource. */ state?: pulumi.Input; /** * The ID of the subnet that the private endpoint VNIC will be created and reside in. * * ** 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 */ subnetId: pulumi.Input; } //# sourceMappingURL=privateEndpoint.d.ts.map