import * as pulumi from "@pulumi/pulumi";
import * as outputs from "../types/output";
/**
 * This data source provides details about a specific Gateway resource in Oracle Cloud Infrastructure API Gateway service.
 *
 * Gets a gateway by identifier.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as oci from "@pulumi/oci";
 *
 * const testGateway = oci.apigateway.getGateway({
 *     gatewayId: testGatewayOciApigatewayGateway.id,
 * });
 * ```
 */
export declare function getGateway(args: GetGatewayArgs, opts?: pulumi.InvokeOptions): Promise<GetGatewayResult>;
/**
 * A collection of arguments for invoking getGateway.
 */
export interface GetGatewayArgs {
    /**
     * The ocid of the gateway.
     */
    gatewayId: string;
}
/**
 * A collection of values returned by getGateway.
 */
export interface GetGatewayResult {
    /**
     * An array of CA bundles that should be used on the Gateway for TLS validation.
     */
    readonly caBundles: outputs.ApiGateway.GetGatewayCaBundle[];
    /**
     * The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the resource.
     */
    readonly certificateId: string;
    /**
     * The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the compartment in which the resource is created.
     */
    readonly compartmentId: string;
    /**
     * 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: {
        [key: string]: string;
    };
    /**
     * A user-friendly name. Does not have to be unique, and it's changeable. Avoid entering confidential information.  Example: `My new resource`
     */
    readonly displayName: string;
    /**
     * Gateway endpoint type. `PUBLIC` will have a public ip address assigned to it, while `PRIVATE` will only be accessible on a private IP address on the subnet.  Example: `PUBLIC` or `PRIVATE`
     */
    readonly endpointType: string;
    /**
     * 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: {
        [key: string]: string;
    };
    readonly gatewayId: string;
    /**
     * The hostname for APIs deployed on the gateway.
     */
    readonly hostname: string;
    /**
     * The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the resource.
     */
    readonly id: string;
    /**
     * An array of IP addresses associated with the gateway.
     */
    readonly ipAddresses: outputs.ApiGateway.GetGatewayIpAddress[];
    /**
     * Determines whether the gateway has an IPv4 or IPv6 address assigned to it, or both. `IPV4` means the gateway will only have an IPv4 address assigned to it, and `IPV6` means the gateway will only have an `IPv6` address assigned to it. `DUAL_STACK` means the gateway will have both an IPv4 and IPv6 address assigned to it. Example: `IPV4` or `IPV6` or `DUAL_STACK`
     */
    readonly ipMode: string;
    /**
     * IPv4 address configuration details that should be used when creating the gateway.
     */
    readonly ipv4addressConfigurations: outputs.ApiGateway.GetGatewayIpv4addressConfiguration[];
    /**
     * IPv6 address configuration details that should be used when creating the gateway.
     */
    readonly ipv6addressConfigurations: outputs.ApiGateway.GetGatewayIpv6addressConfiguration[];
    readonly isLockOverride: boolean;
    /**
     * A message describing the current state in more detail. For example, can be used to provide actionable information for a resource in a Failed state.
     */
    readonly lifecycleDetails: string;
    /**
     * Locks associated with this resource.
     */
    readonly locks: outputs.ApiGateway.GetGatewayLock[];
    /**
     * An array of Network Security Groups OCIDs associated with this API Gateway.
     */
    readonly networkSecurityGroupIds: string[];
    /**
     * Base Gateway response cache.
     */
    readonly responseCacheDetails: outputs.ApiGateway.GetGatewayResponseCacheDetail[];
    /**
     * The current state of the gateway.
     */
    readonly state: string;
    /**
     * The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the subnet in which related resources are created.
     */
    readonly subnetId: string;
    /**
     * System tags for this resource. Each key is predefined and scoped to a namespace. Example: `{"orcl-cloud.free-tier-retained": "true"}`
     */
    readonly systemTags: {
        [key: string]: string;
    };
    /**
     * The time this resource was created. An RFC3339 formatted datetime string.
     */
    readonly timeCreated: string;
    /**
     * The time this resource was last updated. An RFC3339 formatted datetime string.
     */
    readonly timeUpdated: string;
}
/**
 * This data source provides details about a specific Gateway resource in Oracle Cloud Infrastructure API Gateway service.
 *
 * Gets a gateway by identifier.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as oci from "@pulumi/oci";
 *
 * const testGateway = oci.apigateway.getGateway({
 *     gatewayId: testGatewayOciApigatewayGateway.id,
 * });
 * ```
 */
export declare function getGatewayOutput(args: GetGatewayOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output<GetGatewayResult>;
/**
 * A collection of arguments for invoking getGateway.
 */
export interface GetGatewayOutputArgs {
    /**
     * The ocid of the gateway.
     */
    gatewayId: pulumi.Input<string>;
}
//# sourceMappingURL=getGateway.d.ts.map