import * as pulumi from "@pulumi/pulumi";
/**
 * This resource provides the Preauthenticated Request resource in Oracle Cloud Infrastructure Object Storage service.
 * Api doc link for the resource: https://docs.oracle.com/iaas/api/#/en/objectstorage/latest/PreauthenticatedRequest
 *
 * Example terraform configs related to the resource : https://github.com/oracle/terraform-provider-oci/tree/master/examples/
 *
 * Creates a pre-authenticated request specific to the bucket.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as oci from "@pulumi/oci";
 *
 * const testPreauthenticatedRequest = new oci.objectstorage.Preauthrequest("test_preauthenticated_request", {
 *     accessType: preauthenticatedRequestAccessType,
 *     bucket: preauthenticatedRequestBucket,
 *     name: preauthenticatedRequestName,
 *     namespace: preauthenticatedRequestNamespace,
 *     timeExpires: preauthenticatedRequestTimeExpires,
 *     bucketListingAction: preauthenticatedRequestBucketListingAction,
 *     object: preauthenticatedRequestObject,
 * });
 * ```
 *
 * ## Import
 *
 * PreauthenticatedRequests can be imported using the `id`, e.g.
 *
 * ```sh
 * $ pulumi import oci:ObjectStorage/preauthrequest:Preauthrequest test_preauthenticated_request "n/{namespaceName}/b/{bucketName}/p/{parId}"
 * ```
 */
export declare class Preauthrequest extends pulumi.CustomResource {
    /**
     * Get an existing Preauthrequest 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<pulumi.ID>, state?: PreauthrequestState, opts?: pulumi.CustomResourceOptions): Preauthrequest;
    /**
     * Returns true if the given object is an instance of Preauthrequest.  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 Preauthrequest;
    /**
     * The operation that can be performed on this resource. Allowed Values: `ObjectRead`, `ObjectWrite`, `ObjectReadWrite`, `AnyObjectReadWrite` or `AnyObjectRead`
     */
    readonly accessType: pulumi.Output<string>;
    /**
     * The URI to embed in the URL `https://objectstorage.${var.region}.oraclecloud.com{var.access_uri}` when using the pre-authenticated request.
     */
    readonly accessUri: pulumi.Output<string>;
    /**
     * The name of the bucket. Avoid entering confidential information. Example: `my-new-bucket1`
     */
    readonly bucket: pulumi.Output<string>;
    /**
     * Specifies whether a list operation is allowed on a PAR with accessType "AnyObjectRead" or "AnyObjectReadWrite". Deny: Prevents the user from performing a list operation. ListObjects: Authorizes the user to perform a list operation.
     */
    readonly bucketListingAction: pulumi.Output<string>;
    /**
     * The full Path for the object.
     */
    readonly fullPath: pulumi.Output<string>;
    /**
     * A user-specified name for the pre-authenticated request. Names can be helpful in managing pre-authenticated requests. Avoid entering confidential information.
     */
    readonly name: pulumi.Output<string>;
    /**
     * The Object Storage namespace used for the request.
     */
    readonly namespace: pulumi.Output<string>;
    /**
     * Deprecated. Instead use `objectName`. Requests that include both `object` and `objectName` will be rejected. (Optional) The name of the object that is being granted access to by the pre-authenticated request. Avoid entering confidential information. The object name can be null and if so, the pre-authenticated request grants access to the entire bucket if the access type allows that. The object name can be a prefix as well, in that case pre-authenticated request grants access to all the objects within the bucket starting with that prefix provided that we have the correct access type.
     *
     * @deprecated The 'object' field has been deprecated. Please use 'object_name' instead.
     */
    readonly object: pulumi.Output<string>;
    /**
     * The name of the object that is being granted access to by the pre-authenticated request. Avoid entering confidential information. The object name can be null and if so, the pre-authenticated request grants access to the entire bucket if the access type allows that. The object name can be a prefix as well, in that case pre-authenticated request grants access to all the objects within the bucket starting with that prefix provided that we have the correct access type.
     */
    readonly objectName: pulumi.Output<string>;
    /**
     * The unique identifier for the pre-authenticated request. This can be used to manage operations against the pre-authenticated request, such as GET or DELETE.
     */
    readonly parId: pulumi.Output<string>;
    /**
     * The date when the pre-authenticated request was created as per specification [RFC 3339](https://tools.ietf.org/html/rfc3339).
     */
    readonly timeCreated: pulumi.Output<string>;
    /**
     * The expiration date for the pre-authenticated request as per [RFC 3339](https://tools.ietf.org/html/rfc3339). After this date the pre-authenticated request will no longer be valid.
     *
     *
     * ** 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 timeExpires: pulumi.Output<string>;
    /**
     * Create a Preauthrequest 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: PreauthrequestArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * Input properties used for looking up and filtering Preauthrequest resources.
 */
export interface PreauthrequestState {
    /**
     * The operation that can be performed on this resource. Allowed Values: `ObjectRead`, `ObjectWrite`, `ObjectReadWrite`, `AnyObjectReadWrite` or `AnyObjectRead`
     */
    accessType?: pulumi.Input<string | undefined>;
    /**
     * The URI to embed in the URL `https://objectstorage.${var.region}.oraclecloud.com{var.access_uri}` when using the pre-authenticated request.
     */
    accessUri?: pulumi.Input<string | undefined>;
    /**
     * The name of the bucket. Avoid entering confidential information. Example: `my-new-bucket1`
     */
    bucket?: pulumi.Input<string | undefined>;
    /**
     * Specifies whether a list operation is allowed on a PAR with accessType "AnyObjectRead" or "AnyObjectReadWrite". Deny: Prevents the user from performing a list operation. ListObjects: Authorizes the user to perform a list operation.
     */
    bucketListingAction?: pulumi.Input<string | undefined>;
    /**
     * The full Path for the object.
     */
    fullPath?: pulumi.Input<string | undefined>;
    /**
     * A user-specified name for the pre-authenticated request. Names can be helpful in managing pre-authenticated requests. Avoid entering confidential information.
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * The Object Storage namespace used for the request.
     */
    namespace?: pulumi.Input<string | undefined>;
    /**
     * Deprecated. Instead use `objectName`. Requests that include both `object` and `objectName` will be rejected. (Optional) The name of the object that is being granted access to by the pre-authenticated request. Avoid entering confidential information. The object name can be null and if so, the pre-authenticated request grants access to the entire bucket if the access type allows that. The object name can be a prefix as well, in that case pre-authenticated request grants access to all the objects within the bucket starting with that prefix provided that we have the correct access type.
     *
     * @deprecated The 'object' field has been deprecated. Please use 'object_name' instead.
     */
    object?: pulumi.Input<string | undefined>;
    /**
     * The name of the object that is being granted access to by the pre-authenticated request. Avoid entering confidential information. The object name can be null and if so, the pre-authenticated request grants access to the entire bucket if the access type allows that. The object name can be a prefix as well, in that case pre-authenticated request grants access to all the objects within the bucket starting with that prefix provided that we have the correct access type.
     */
    objectName?: pulumi.Input<string | undefined>;
    /**
     * The unique identifier for the pre-authenticated request. This can be used to manage operations against the pre-authenticated request, such as GET or DELETE.
     */
    parId?: pulumi.Input<string | undefined>;
    /**
     * The date when the pre-authenticated request was created as per specification [RFC 3339](https://tools.ietf.org/html/rfc3339).
     */
    timeCreated?: pulumi.Input<string | undefined>;
    /**
     * The expiration date for the pre-authenticated request as per [RFC 3339](https://tools.ietf.org/html/rfc3339). After this date the pre-authenticated request will no longer be valid.
     *
     *
     * ** 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
     */
    timeExpires?: pulumi.Input<string | undefined>;
}
/**
 * The set of arguments for constructing a Preauthrequest resource.
 */
export interface PreauthrequestArgs {
    /**
     * The operation that can be performed on this resource. Allowed Values: `ObjectRead`, `ObjectWrite`, `ObjectReadWrite`, `AnyObjectReadWrite` or `AnyObjectRead`
     */
    accessType: pulumi.Input<string>;
    /**
     * The name of the bucket. Avoid entering confidential information. Example: `my-new-bucket1`
     */
    bucket: pulumi.Input<string>;
    /**
     * Specifies whether a list operation is allowed on a PAR with accessType "AnyObjectRead" or "AnyObjectReadWrite". Deny: Prevents the user from performing a list operation. ListObjects: Authorizes the user to perform a list operation.
     */
    bucketListingAction?: pulumi.Input<string | undefined>;
    /**
     * A user-specified name for the pre-authenticated request. Names can be helpful in managing pre-authenticated requests. Avoid entering confidential information.
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * The Object Storage namespace used for the request.
     */
    namespace: pulumi.Input<string>;
    /**
     * Deprecated. Instead use `objectName`. Requests that include both `object` and `objectName` will be rejected. (Optional) The name of the object that is being granted access to by the pre-authenticated request. Avoid entering confidential information. The object name can be null and if so, the pre-authenticated request grants access to the entire bucket if the access type allows that. The object name can be a prefix as well, in that case pre-authenticated request grants access to all the objects within the bucket starting with that prefix provided that we have the correct access type.
     *
     * @deprecated The 'object' field has been deprecated. Please use 'object_name' instead.
     */
    object?: pulumi.Input<string | undefined>;
    /**
     * The name of the object that is being granted access to by the pre-authenticated request. Avoid entering confidential information. The object name can be null and if so, the pre-authenticated request grants access to the entire bucket if the access type allows that. The object name can be a prefix as well, in that case pre-authenticated request grants access to all the objects within the bucket starting with that prefix provided that we have the correct access type.
     */
    objectName?: pulumi.Input<string | undefined>;
    /**
     * The expiration date for the pre-authenticated request as per [RFC 3339](https://tools.ietf.org/html/rfc3339). After this date the pre-authenticated request will no longer be valid.
     *
     *
     * ** 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
     */
    timeExpires: pulumi.Input<string>;
}
//# sourceMappingURL=preauthrequest.d.ts.map