/**
 * (C) Copyright IBM Corp. 2024.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/// <reference types="node" />
import { IncomingHttpHeaders, OutgoingHttpHeaders } from 'http';
import { BaseService, UserOptions } from 'ibm-cloud-sdk-core';
/**
 * With the Context Based Restrictions API, you can:
 * * Create, list, get, replace, and delete network zones
 * * Create, list, get, replace, and delete context-based restriction rules
 * * Get account settings
 *
 * API Version: 1.0.1
 */
declare class ContextBasedRestrictionsV1 extends BaseService {
    static DEFAULT_SERVICE_URL: string;
    static DEFAULT_SERVICE_NAME: string;
    /*************************
     * Factory method
     ************************/
    /**
     * Constructs an instance of ContextBasedRestrictionsV1 with passed in options and external configuration.
     *
     * @param {UserOptions} [options] - The parameters to send to the service.
     * @param {string} [options.serviceName] - The name of the service to configure
     * @param {Authenticator} [options.authenticator] - The Authenticator object used to authenticate requests to the service
     * @param {string} [options.serviceUrl] - The base URL for the service
     * @returns {ContextBasedRestrictionsV1}
     */
    static newInstance(options: UserOptions): ContextBasedRestrictionsV1;
    /**
     * Construct a ContextBasedRestrictionsV1 object.
     *
     * @param {Object} options - Options for the service.
     * @param {string} [options.serviceUrl] - The base URL for the service
     * @param {OutgoingHttpHeaders} [options.headers] - Default headers that shall be included with every request to the service.
     * @param {Authenticator} options.authenticator - The Authenticator object used to authenticate requests to the service
     * @constructor
     * @returns {ContextBasedRestrictionsV1}
     */
    constructor(options: UserOptions);
    /*************************
     * zones
     ************************/
    /**
     * Create a network zone.
     *
     * This operation creates a network zone for the specified account.
     *
     * @param {Object} [params] - The parameters to send to the service.
     * @param {string} [params.name] - The name of the zone.
     * @param {string} [params.accountId] - The id of the account owning this zone.
     * @param {Address[]} [params.addresses] - The list of addresses in the zone.
     * @param {string} [params.description] - The description of the zone.
     * @param {Address[]} [params.excluded] - The list of excluded addresses in the zone. Only addresses of type
     * `ipAddress`, `ipRange`, and `subnet` can be excluded.
     * @param {string} [params.xCorrelationId] - The supplied or generated value of this header is logged for a request
     * and repeated in a response header for the corresponding response. The same value is used for downstream requests
     * and retries of those requests. If a value of this headers is not supplied in a request, the service generates a
     * random (version 4) UUID.
     * @param {string} [params.transactionId] - Deprecated: The `Transaction-Id` header behaves as the `X-Correlation-Id`
     * header. It is supported for backward compatibility with other IBM platform services that support the
     * `Transaction-Id` header only. If both `X-Correlation-Id` and `Transaction-Id` are provided, `X-Correlation-Id` has
     * the precedence over `Transaction-Id`.
     * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers
     * @returns {Promise<ContextBasedRestrictionsV1.Response<ContextBasedRestrictionsV1.Zone>>}
     */
    createZone(params?: ContextBasedRestrictionsV1.CreateZoneParams): Promise<ContextBasedRestrictionsV1.Response<ContextBasedRestrictionsV1.Zone>>;
    /**
     * List network zones.
     *
     * This operation lists network zones in the specified account.
     *
     * @param {Object} params - The parameters to send to the service.
     * @param {string} params.accountId - The ID of the managing account.
     * @param {string} [params.xCorrelationId] - The supplied or generated value of this header is logged for a request
     * and repeated in a response header for the corresponding response. The same value is used for downstream requests
     * and retries of those requests. If a value of this headers is not supplied in a request, the service generates a
     * random (version 4) UUID.
     * @param {string} [params.transactionId] - Deprecated: The `Transaction-Id` header behaves as the `X-Correlation-Id`
     * header. It is supported for backward compatibility with other IBM platform services that support the
     * `Transaction-Id` header only. If both `X-Correlation-Id` and `Transaction-Id` are provided, `X-Correlation-Id` has
     * the precedence over `Transaction-Id`.
     * @param {string} [params.name] - The name of the zone.
     * @param {string} [params.sort] - Sorts results by using a valid sort field. To learn more, see
     * [Sorting](https://cloud.ibm.com/docs/api-handbook?topic=api-handbook-sorting).
     * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers
     * @returns {Promise<ContextBasedRestrictionsV1.Response<ContextBasedRestrictionsV1.ZoneList>>}
     */
    listZones(params: ContextBasedRestrictionsV1.ListZonesParams): Promise<ContextBasedRestrictionsV1.Response<ContextBasedRestrictionsV1.ZoneList>>;
    /**
     * Get a network zone.
     *
     * This operation retrieves the network zone identified by the specified zone ID.
     *
     * @param {Object} params - The parameters to send to the service.
     * @param {string} params.zoneId - The ID of a zone.
     * @param {string} [params.xCorrelationId] - The supplied or generated value of this header is logged for a request
     * and repeated in a response header for the corresponding response. The same value is used for downstream requests
     * and retries of those requests. If a value of this headers is not supplied in a request, the service generates a
     * random (version 4) UUID.
     * @param {string} [params.transactionId] - Deprecated: The `Transaction-Id` header behaves as the `X-Correlation-Id`
     * header. It is supported for backward compatibility with other IBM platform services that support the
     * `Transaction-Id` header only. If both `X-Correlation-Id` and `Transaction-Id` are provided, `X-Correlation-Id` has
     * the precedence over `Transaction-Id`.
     * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers
     * @returns {Promise<ContextBasedRestrictionsV1.Response<ContextBasedRestrictionsV1.Zone>>}
     */
    getZone(params: ContextBasedRestrictionsV1.GetZoneParams): Promise<ContextBasedRestrictionsV1.Response<ContextBasedRestrictionsV1.Zone>>;
    /**
     * Replace a network zone.
     *
     * This operation replaces the network zone identified by the specified zone ID. Partial updates are not supported.
     * The entire network zone object must be replaced.
     *
     * @param {Object} params - The parameters to send to the service.
     * @param {string} params.zoneId - The ID of a zone.
     * @param {string} params.ifMatch - The current revision of the resource being updated. This can be found in the
     * Create/Get/Update resource response ETag header.
     * @param {string} [params.name] - The name of the zone.
     * @param {string} [params.accountId] - The id of the account owning this zone.
     * @param {Address[]} [params.addresses] - The list of addresses in the zone.
     * @param {string} [params.description] - The description of the zone.
     * @param {Address[]} [params.excluded] - The list of excluded addresses in the zone. Only addresses of type
     * `ipAddress`, `ipRange`, and `subnet` can be excluded.
     * @param {string} [params.xCorrelationId] - The supplied or generated value of this header is logged for a request
     * and repeated in a response header for the corresponding response. The same value is used for downstream requests
     * and retries of those requests. If a value of this headers is not supplied in a request, the service generates a
     * random (version 4) UUID.
     * @param {string} [params.transactionId] - Deprecated: The `Transaction-Id` header behaves as the `X-Correlation-Id`
     * header. It is supported for backward compatibility with other IBM platform services that support the
     * `Transaction-Id` header only. If both `X-Correlation-Id` and `Transaction-Id` are provided, `X-Correlation-Id` has
     * the precedence over `Transaction-Id`.
     * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers
     * @returns {Promise<ContextBasedRestrictionsV1.Response<ContextBasedRestrictionsV1.Zone>>}
     */
    replaceZone(params: ContextBasedRestrictionsV1.ReplaceZoneParams): Promise<ContextBasedRestrictionsV1.Response<ContextBasedRestrictionsV1.Zone>>;
    /**
     * Delete a network zone.
     *
     * This operation deletes the network zone identified by the specified zone ID.
     *
     * @param {Object} params - The parameters to send to the service.
     * @param {string} params.zoneId - The ID of a zone.
     * @param {string} [params.xCorrelationId] - The supplied or generated value of this header is logged for a request
     * and repeated in a response header for the corresponding response. The same value is used for downstream requests
     * and retries of those requests. If a value of this headers is not supplied in a request, the service generates a
     * random (version 4) UUID.
     * @param {string} [params.transactionId] - Deprecated: The `Transaction-Id` header behaves as the `X-Correlation-Id`
     * header. It is supported for backward compatibility with other IBM platform services that support the
     * `Transaction-Id` header only. If both `X-Correlation-Id` and `Transaction-Id` are provided, `X-Correlation-Id` has
     * the precedence over `Transaction-Id`.
     * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers
     * @returns {Promise<ContextBasedRestrictionsV1.Response<ContextBasedRestrictionsV1.EmptyObject>>}
     */
    deleteZone(params: ContextBasedRestrictionsV1.DeleteZoneParams): Promise<ContextBasedRestrictionsV1.Response<ContextBasedRestrictionsV1.EmptyObject>>;
    /**
     * List available service reference targets.
     *
     * This operation lists all available service reference targets.
     *
     * @param {Object} [params] - The parameters to send to the service.
     * @param {string} [params.xCorrelationId] - The supplied or generated value of this header is logged for a request
     * and repeated in a response header for the corresponding response. The same value is used for downstream requests
     * and retries of those requests. If a value of this headers is not supplied in a request, the service generates a
     * random (version 4) UUID.
     * @param {string} [params.transactionId] - Deprecated: The `Transaction-Id` header behaves as the `X-Correlation-Id`
     * header. It is supported for backward compatibility with other IBM platform services that support the
     * `Transaction-Id` header only. If both `X-Correlation-Id` and `Transaction-Id` are provided, `X-Correlation-Id` has
     * the precedence over `Transaction-Id`.
     * @param {string} [params.type] - Specifies the types of services to retrieve.
     * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers
     * @returns {Promise<ContextBasedRestrictionsV1.Response<ContextBasedRestrictionsV1.ServiceRefTargetList>>}
     */
    listAvailableServicerefTargets(params?: ContextBasedRestrictionsV1.ListAvailableServicerefTargetsParams): Promise<ContextBasedRestrictionsV1.Response<ContextBasedRestrictionsV1.ServiceRefTargetList>>;
    /**
     * Get service reference target for a specified service name.
     *
     * This operation gets the service reference target for a specified service name.
     *
     * @param {Object} params - The parameters to send to the service.
     * @param {string} params.serviceName - The name of a service.
     * @param {string} [params.xCorrelationId] - The supplied or generated value of this header is logged for a request
     * and repeated in a response header for the corresponding response. The same value is used for downstream requests
     * and retries of those requests. If a value of this headers is not supplied in a request, the service generates a
     * random (version 4) UUID.
     * @param {string} [params.transactionId] - Deprecated: The `Transaction-Id` header behaves as the `X-Correlation-Id`
     * header. It is supported for backward compatibility with other IBM platform services that support the
     * `Transaction-Id` header only. If both `X-Correlation-Id` and `Transaction-Id` are provided, `X-Correlation-Id` has
     * the precedence over `Transaction-Id`.
     * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers
     * @returns {Promise<ContextBasedRestrictionsV1.Response<ContextBasedRestrictionsV1.ServiceRefTarget>>}
     */
    getServicerefTarget(params: ContextBasedRestrictionsV1.GetServicerefTargetParams): Promise<ContextBasedRestrictionsV1.Response<ContextBasedRestrictionsV1.ServiceRefTarget>>;
    /*************************
     * rules
     ************************/
    /**
     * Create a rule.
     *
     * This operation creates a rule for the specified account.
     *
     * @param {Object} [params] - The parameters to send to the service.
     * @param {RuleContext[]} [params.contexts] - The contexts this rule applies to.
     * @param {Resource[]} [params.resources] - The resources this rule apply to.
     * @param {string} [params.description] - The description of the rule.
     * @param {NewRuleOperations} [params.operations] - The operations this rule applies to.
     * @param {string} [params.enforcementMode] - The rule enforcement mode:
     *  * `enabled` - The restrictions are enforced and reported. This is the default.
     *  * `disabled` - The restrictions are disabled. Nothing is enforced or reported.
     *  * `report` - The restrictions are evaluated and reported, but not enforced.
     * @param {string} [params.xCorrelationId] - The supplied or generated value of this header is logged for a request
     * and repeated in a response header for the corresponding response. The same value is used for downstream requests
     * and retries of those requests. If a value of this headers is not supplied in a request, the service generates a
     * random (version 4) UUID.
     * @param {string} [params.transactionId] - Deprecated: The `Transaction-Id` header behaves as the `X-Correlation-Id`
     * header. It is supported for backward compatibility with other IBM platform services that support the
     * `Transaction-Id` header only. If both `X-Correlation-Id` and `Transaction-Id` are provided, `X-Correlation-Id` has
     * the precedence over `Transaction-Id`.
     * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers
     * @returns {Promise<ContextBasedRestrictionsV1.Response<ContextBasedRestrictionsV1.Rule>>}
     */
    createRule(params?: ContextBasedRestrictionsV1.CreateRuleParams): Promise<ContextBasedRestrictionsV1.Response<ContextBasedRestrictionsV1.Rule>>;
    /**
     * List rules.
     *
     * This operation lists rules in the specified account.
     *
     * @param {Object} params - The parameters to send to the service.
     * @param {string} params.accountId - The ID of the managing account.
     * @param {string} [params.xCorrelationId] - The supplied or generated value of this header is logged for a request
     * and repeated in a response header for the corresponding response. The same value is used for downstream requests
     * and retries of those requests. If a value of this headers is not supplied in a request, the service generates a
     * random (version 4) UUID.
     * @param {string} [params.transactionId] - Deprecated: The `Transaction-Id` header behaves as the `X-Correlation-Id`
     * header. It is supported for backward compatibility with other IBM platform services that support the
     * `Transaction-Id` header only. If both `X-Correlation-Id` and `Transaction-Id` are provided, `X-Correlation-Id` has
     * the precedence over `Transaction-Id`.
     * @param {string} [params.region] - The `region` resource attribute.
     * @param {string} [params.resource] - The `resource` resource attribute.
     * @param {string} [params.resourceType] - The `resourceType` resource attribute.
     * @param {string} [params.serviceInstance] - The `serviceInstance` resource attribute.
     * @param {string} [params.serviceName] - The `serviceName` resource attribute.
     * @param {string} [params.serviceType] - The rule's `serviceType` resource attribute.
     * @param {string} [params.serviceGroupId] - The rule's `service_group_id` resource attribute.
     * @param {string} [params.zoneId] - The globally unique ID of the zone.
     * @param {string} [params.sort] - Sorts results by using a valid sort field. To learn more, see
     * [Sorting](https://cloud.ibm.com/docs/api-handbook?topic=api-handbook-sorting).
     * @param {string} [params.enforcementMode] - The rule's `enforcement_mode` attribute.
     * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers
     * @returns {Promise<ContextBasedRestrictionsV1.Response<ContextBasedRestrictionsV1.RuleList>>}
     */
    listRules(params: ContextBasedRestrictionsV1.ListRulesParams): Promise<ContextBasedRestrictionsV1.Response<ContextBasedRestrictionsV1.RuleList>>;
    /**
     * Get a rule.
     *
     * This operation retrieves the rule identified by the specified rule ID.
     *
     * @param {Object} params - The parameters to send to the service.
     * @param {string} params.ruleId - The ID of a rule.
     * @param {string} [params.xCorrelationId] - The supplied or generated value of this header is logged for a request
     * and repeated in a response header for the corresponding response. The same value is used for downstream requests
     * and retries of those requests. If a value of this headers is not supplied in a request, the service generates a
     * random (version 4) UUID.
     * @param {string} [params.transactionId] - Deprecated: The `Transaction-Id` header behaves as the `X-Correlation-Id`
     * header. It is supported for backward compatibility with other IBM platform services that support the
     * `Transaction-Id` header only. If both `X-Correlation-Id` and `Transaction-Id` are provided, `X-Correlation-Id` has
     * the precedence over `Transaction-Id`.
     * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers
     * @returns {Promise<ContextBasedRestrictionsV1.Response<ContextBasedRestrictionsV1.Rule>>}
     */
    getRule(params: ContextBasedRestrictionsV1.GetRuleParams): Promise<ContextBasedRestrictionsV1.Response<ContextBasedRestrictionsV1.Rule>>;
    /**
     * Replace a rule.
     *
     * This operation replaces the rule identified by the specified rule ID. Partial updates are not supported. The entire
     * rule object must be replaced.
     *
     * @param {Object} params - The parameters to send to the service.
     * @param {string} params.ruleId - The ID of a rule.
     * @param {string} params.ifMatch - The current revision of the resource being updated. This can be found in the
     * Create/Get/Update resource response ETag header.
     * @param {RuleContext[]} [params.contexts] - The contexts this rule applies to.
     * @param {Resource[]} [params.resources] - The resources this rule apply to.
     * @param {string} [params.description] - The description of the rule.
     * @param {NewRuleOperations} [params.operations] - The operations this rule applies to.
     * @param {string} [params.enforcementMode] - The rule enforcement mode:
     *  * `enabled` - The restrictions are enforced and reported. This is the default.
     *  * `disabled` - The restrictions are disabled. Nothing is enforced or reported.
     *  * `report` - The restrictions are evaluated and reported, but not enforced.
     * @param {string} [params.xCorrelationId] - The supplied or generated value of this header is logged for a request
     * and repeated in a response header for the corresponding response. The same value is used for downstream requests
     * and retries of those requests. If a value of this headers is not supplied in a request, the service generates a
     * random (version 4) UUID.
     * @param {string} [params.transactionId] - Deprecated: The `Transaction-Id` header behaves as the `X-Correlation-Id`
     * header. It is supported for backward compatibility with other IBM platform services that support the
     * `Transaction-Id` header only. If both `X-Correlation-Id` and `Transaction-Id` are provided, `X-Correlation-Id` has
     * the precedence over `Transaction-Id`.
     * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers
     * @returns {Promise<ContextBasedRestrictionsV1.Response<ContextBasedRestrictionsV1.Rule>>}
     */
    replaceRule(params: ContextBasedRestrictionsV1.ReplaceRuleParams): Promise<ContextBasedRestrictionsV1.Response<ContextBasedRestrictionsV1.Rule>>;
    /**
     * Delete a rule.
     *
     * This operation deletes the rule identified by the specified rule ID.
     *
     * @param {Object} params - The parameters to send to the service.
     * @param {string} params.ruleId - The ID of a rule.
     * @param {string} [params.xCorrelationId] - The supplied or generated value of this header is logged for a request
     * and repeated in a response header for the corresponding response. The same value is used for downstream requests
     * and retries of those requests. If a value of this headers is not supplied in a request, the service generates a
     * random (version 4) UUID.
     * @param {string} [params.transactionId] - Deprecated: The `Transaction-Id` header behaves as the `X-Correlation-Id`
     * header. It is supported for backward compatibility with other IBM platform services that support the
     * `Transaction-Id` header only. If both `X-Correlation-Id` and `Transaction-Id` are provided, `X-Correlation-Id` has
     * the precedence over `Transaction-Id`.
     * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers
     * @returns {Promise<ContextBasedRestrictionsV1.Response<ContextBasedRestrictionsV1.EmptyObject>>}
     */
    deleteRule(params: ContextBasedRestrictionsV1.DeleteRuleParams): Promise<ContextBasedRestrictionsV1.Response<ContextBasedRestrictionsV1.EmptyObject>>;
    /*************************
     * accountSettings
     ************************/
    /**
     * Get account settings.
     *
     * This operation retrieves the settings for the specified account ID.
     *
     * @param {Object} params - The parameters to send to the service.
     * @param {string} params.accountId - The ID of the account the settings are for.
     * @param {string} [params.xCorrelationId] - The supplied or generated value of this header is logged for a request
     * and repeated in a response header for the corresponding response. The same value is used for downstream requests
     * and retries of those requests. If a value of this headers is not supplied in a request, the service generates a
     * random (version 4) UUID.
     * @param {string} [params.transactionId] - Deprecated: The `Transaction-Id` header behaves as the `X-Correlation-Id`
     * header. It is supported for backward compatibility with other IBM platform services that support the
     * `Transaction-Id` header only. If both `X-Correlation-Id` and `Transaction-Id` are provided, `X-Correlation-Id` has
     * the precedence over `Transaction-Id`.
     * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers
     * @returns {Promise<ContextBasedRestrictionsV1.Response<ContextBasedRestrictionsV1.AccountSettings>>}
     */
    getAccountSettings(params: ContextBasedRestrictionsV1.GetAccountSettingsParams): Promise<ContextBasedRestrictionsV1.Response<ContextBasedRestrictionsV1.AccountSettings>>;
    /*************************
     * operations
     ************************/
    /**
     * List available service operations.
     *
     * This operation lists all available service operations.
     *
     * @param {Object} [params] - The parameters to send to the service.
     * @param {string} [params.xCorrelationId] - The supplied or generated value of this header is logged for a request
     * and repeated in a response header for the corresponding response. The same value is used for downstream requests
     * and retries of those requests. If a value of this headers is not supplied in a request, the service generates a
     * random (version 4) UUID.
     * @param {string} [params.transactionId] - Deprecated: The `Transaction-Id` header behaves as the `X-Correlation-Id`
     * header. It is supported for backward compatibility with other IBM platform services that support the
     * `Transaction-Id` header only. If both `X-Correlation-Id` and `Transaction-Id` are provided, `X-Correlation-Id` has
     * the precedence over `Transaction-Id`.
     * @param {string} [params.serviceName] - The name of the service.
     * @param {string} [params.serviceGroupId] - The id of the service group.
     * @param {string} [params.resourceType] - The type of resource.
     * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers
     * @returns {Promise<ContextBasedRestrictionsV1.Response<ContextBasedRestrictionsV1.OperationsList>>}
     */
    listAvailableServiceOperations(params?: ContextBasedRestrictionsV1.ListAvailableServiceOperationsParams): Promise<ContextBasedRestrictionsV1.Response<ContextBasedRestrictionsV1.OperationsList>>;
}
/*************************
 * interfaces
 ************************/
declare namespace ContextBasedRestrictionsV1 {
    /** An operation response. */
    interface Response<T = any> {
        result: T;
        status: number;
        statusText: string;
        headers: IncomingHttpHeaders;
    }
    /** The callback for a service request. */
    type Callback<T> = (error: any, response?: Response<T>) => void;
    /** The body of a service request that returns no response data. */
    interface EmptyObject {
    }
    /** A standard JS object, defined to avoid the limitations of `Object` and `object` */
    interface JsonObject {
        [key: string]: any;
    }
    /*************************
     * request interfaces
     ************************/
    /** Parameters for the `createZone` operation. */
    interface CreateZoneParams {
        /** The name of the zone. */
        name?: string;
        /** The id of the account owning this zone. */
        accountId?: string;
        /** The list of addresses in the zone. */
        addresses?: Address[];
        /** The description of the zone. */
        description?: string;
        /** The list of excluded addresses in the zone. Only addresses of type `ipAddress`, `ipRange`, and `subnet` can
         *  be excluded.
         */
        excluded?: Address[];
        /** The supplied or generated value of this header is logged for a request and repeated in a response header for
         *  the corresponding response. The same value is used for downstream requests and retries of those requests. If a
         *  value of this headers is not supplied in a request, the service generates a random (version 4) UUID.
         */
        xCorrelationId?: string;
        /** Deprecated: The `Transaction-Id` header behaves as the `X-Correlation-Id` header. It is supported for
         *  backward compatibility with other IBM platform services that support the `Transaction-Id` header only. If both
         *  `X-Correlation-Id` and `Transaction-Id` are provided, `X-Correlation-Id` has the precedence over
         *  `Transaction-Id`.
         */
        transactionId?: string;
        headers?: OutgoingHttpHeaders;
    }
    /** Parameters for the `listZones` operation. */
    interface ListZonesParams {
        /** The ID of the managing account. */
        accountId: string;
        /** The supplied or generated value of this header is logged for a request and repeated in a response header for
         *  the corresponding response. The same value is used for downstream requests and retries of those requests. If a
         *  value of this headers is not supplied in a request, the service generates a random (version 4) UUID.
         */
        xCorrelationId?: string;
        /** Deprecated: The `Transaction-Id` header behaves as the `X-Correlation-Id` header. It is supported for
         *  backward compatibility with other IBM platform services that support the `Transaction-Id` header only. If both
         *  `X-Correlation-Id` and `Transaction-Id` are provided, `X-Correlation-Id` has the precedence over
         *  `Transaction-Id`.
         */
        transactionId?: string;
        /** The name of the zone. */
        name?: string;
        /** Sorts results by using a valid sort field. To learn more, see
         *  [Sorting](https://cloud.ibm.com/docs/api-handbook?topic=api-handbook-sorting).
         */
        sort?: string;
        headers?: OutgoingHttpHeaders;
    }
    /** Parameters for the `getZone` operation. */
    interface GetZoneParams {
        /** The ID of a zone. */
        zoneId: string;
        /** The supplied or generated value of this header is logged for a request and repeated in a response header for
         *  the corresponding response. The same value is used for downstream requests and retries of those requests. If a
         *  value of this headers is not supplied in a request, the service generates a random (version 4) UUID.
         */
        xCorrelationId?: string;
        /** Deprecated: The `Transaction-Id` header behaves as the `X-Correlation-Id` header. It is supported for
         *  backward compatibility with other IBM platform services that support the `Transaction-Id` header only. If both
         *  `X-Correlation-Id` and `Transaction-Id` are provided, `X-Correlation-Id` has the precedence over
         *  `Transaction-Id`.
         */
        transactionId?: string;
        headers?: OutgoingHttpHeaders;
    }
    /** Parameters for the `replaceZone` operation. */
    interface ReplaceZoneParams {
        /** The ID of a zone. */
        zoneId: string;
        /** The current revision of the resource being updated. This can be found in the Create/Get/Update resource
         *  response ETag header.
         */
        ifMatch: string;
        /** The name of the zone. */
        name?: string;
        /** The id of the account owning this zone. */
        accountId?: string;
        /** The list of addresses in the zone. */
        addresses?: Address[];
        /** The description of the zone. */
        description?: string;
        /** The list of excluded addresses in the zone. Only addresses of type `ipAddress`, `ipRange`, and `subnet` can
         *  be excluded.
         */
        excluded?: Address[];
        /** The supplied or generated value of this header is logged for a request and repeated in a response header for
         *  the corresponding response. The same value is used for downstream requests and retries of those requests. If a
         *  value of this headers is not supplied in a request, the service generates a random (version 4) UUID.
         */
        xCorrelationId?: string;
        /** Deprecated: The `Transaction-Id` header behaves as the `X-Correlation-Id` header. It is supported for
         *  backward compatibility with other IBM platform services that support the `Transaction-Id` header only. If both
         *  `X-Correlation-Id` and `Transaction-Id` are provided, `X-Correlation-Id` has the precedence over
         *  `Transaction-Id`.
         */
        transactionId?: string;
        headers?: OutgoingHttpHeaders;
    }
    /** Parameters for the `deleteZone` operation. */
    interface DeleteZoneParams {
        /** The ID of a zone. */
        zoneId: string;
        /** The supplied or generated value of this header is logged for a request and repeated in a response header for
         *  the corresponding response. The same value is used for downstream requests and retries of those requests. If a
         *  value of this headers is not supplied in a request, the service generates a random (version 4) UUID.
         */
        xCorrelationId?: string;
        /** Deprecated: The `Transaction-Id` header behaves as the `X-Correlation-Id` header. It is supported for
         *  backward compatibility with other IBM platform services that support the `Transaction-Id` header only. If both
         *  `X-Correlation-Id` and `Transaction-Id` are provided, `X-Correlation-Id` has the precedence over
         *  `Transaction-Id`.
         */
        transactionId?: string;
        headers?: OutgoingHttpHeaders;
    }
    /** Parameters for the `listAvailableServicerefTargets` operation. */
    interface ListAvailableServicerefTargetsParams {
        /** The supplied or generated value of this header is logged for a request and repeated in a response header for
         *  the corresponding response. The same value is used for downstream requests and retries of those requests. If a
         *  value of this headers is not supplied in a request, the service generates a random (version 4) UUID.
         */
        xCorrelationId?: string;
        /** Deprecated: The `Transaction-Id` header behaves as the `X-Correlation-Id` header. It is supported for
         *  backward compatibility with other IBM platform services that support the `Transaction-Id` header only. If both
         *  `X-Correlation-Id` and `Transaction-Id` are provided, `X-Correlation-Id` has the precedence over
         *  `Transaction-Id`.
         */
        transactionId?: string;
        /** Specifies the types of services to retrieve. */
        type?: ListAvailableServicerefTargetsConstants.Type | string;
        headers?: OutgoingHttpHeaders;
    }
    /** Constants for the `listAvailableServicerefTargets` operation. */
    namespace ListAvailableServicerefTargetsConstants {
        /** Specifies the types of services to retrieve. */
        enum Type {
            ALL = "all",
            PLATFORM_SERVICE = "platform_service"
        }
    }
    /** Parameters for the `getServicerefTarget` operation. */
    interface GetServicerefTargetParams {
        /** The name of a service. */
        serviceName: string;
        /** The supplied or generated value of this header is logged for a request and repeated in a response header for
         *  the corresponding response. The same value is used for downstream requests and retries of those requests. If a
         *  value of this headers is not supplied in a request, the service generates a random (version 4) UUID.
         */
        xCorrelationId?: string;
        /** Deprecated: The `Transaction-Id` header behaves as the `X-Correlation-Id` header. It is supported for
         *  backward compatibility with other IBM platform services that support the `Transaction-Id` header only. If both
         *  `X-Correlation-Id` and `Transaction-Id` are provided, `X-Correlation-Id` has the precedence over
         *  `Transaction-Id`.
         */
        transactionId?: string;
        headers?: OutgoingHttpHeaders;
    }
    /** Parameters for the `createRule` operation. */
    interface CreateRuleParams {
        /** The contexts this rule applies to. */
        contexts?: RuleContext[];
        /** The resources this rule apply to. */
        resources?: Resource[];
        /** The description of the rule. */
        description?: string;
        /** The operations this rule applies to. */
        operations?: NewRuleOperations;
        /** The rule enforcement mode:
         *   * `enabled` - The restrictions are enforced and reported. This is the default.
         *   * `disabled` - The restrictions are disabled. Nothing is enforced or reported.
         *   * `report` - The restrictions are evaluated and reported, but not enforced.
         */
        enforcementMode?: CreateRuleConstants.EnforcementMode | string;
        /** The supplied or generated value of this header is logged for a request and repeated in a response header for
         *  the corresponding response. The same value is used for downstream requests and retries of those requests. If a
         *  value of this headers is not supplied in a request, the service generates a random (version 4) UUID.
         */
        xCorrelationId?: string;
        /** Deprecated: The `Transaction-Id` header behaves as the `X-Correlation-Id` header. It is supported for
         *  backward compatibility with other IBM platform services that support the `Transaction-Id` header only. If both
         *  `X-Correlation-Id` and `Transaction-Id` are provided, `X-Correlation-Id` has the precedence over
         *  `Transaction-Id`.
         */
        transactionId?: string;
        headers?: OutgoingHttpHeaders;
    }
    /** Constants for the `createRule` operation. */
    namespace CreateRuleConstants {
        /** The rule enforcement mode: * `enabled` - The restrictions are enforced and reported. This is the default. * `disabled` - The restrictions are disabled. Nothing is enforced or reported. * `report` - The restrictions are evaluated and reported, but not enforced. */
        enum EnforcementMode {
            ENABLED = "enabled",
            DISABLED = "disabled",
            REPORT = "report"
        }
    }
    /** Parameters for the `listRules` operation. */
    interface ListRulesParams {
        /** The ID of the managing account. */
        accountId: string;
        /** The supplied or generated value of this header is logged for a request and repeated in a response header for
         *  the corresponding response. The same value is used for downstream requests and retries of those requests. If a
         *  value of this headers is not supplied in a request, the service generates a random (version 4) UUID.
         */
        xCorrelationId?: string;
        /** Deprecated: The `Transaction-Id` header behaves as the `X-Correlation-Id` header. It is supported for
         *  backward compatibility with other IBM platform services that support the `Transaction-Id` header only. If both
         *  `X-Correlation-Id` and `Transaction-Id` are provided, `X-Correlation-Id` has the precedence over
         *  `Transaction-Id`.
         */
        transactionId?: string;
        /** The `region` resource attribute. */
        region?: string;
        /** The `resource` resource attribute. */
        resource?: string;
        /** The `resourceType` resource attribute. */
        resourceType?: string;
        /** The `serviceInstance` resource attribute. */
        serviceInstance?: string;
        /** The `serviceName` resource attribute. */
        serviceName?: string;
        /** The rule's `serviceType` resource attribute. */
        serviceType?: string;
        /** The rule's `service_group_id` resource attribute. */
        serviceGroupId?: string;
        /** The globally unique ID of the zone. */
        zoneId?: string;
        /** Sorts results by using a valid sort field. To learn more, see
         *  [Sorting](https://cloud.ibm.com/docs/api-handbook?topic=api-handbook-sorting).
         */
        sort?: string;
        /** The rule's `enforcement_mode` attribute. */
        enforcementMode?: ListRulesConstants.EnforcementMode | string;
        headers?: OutgoingHttpHeaders;
    }
    /** Constants for the `listRules` operation. */
    namespace ListRulesConstants {
        /** The rule's `enforcement_mode` attribute. */
        enum EnforcementMode {
            ENABLED = "enabled",
            DISABLED = "disabled",
            REPORT = "report"
        }
    }
    /** Parameters for the `getRule` operation. */
    interface GetRuleParams {
        /** The ID of a rule. */
        ruleId: string;
        /** The supplied or generated value of this header is logged for a request and repeated in a response header for
         *  the corresponding response. The same value is used for downstream requests and retries of those requests. If a
         *  value of this headers is not supplied in a request, the service generates a random (version 4) UUID.
         */
        xCorrelationId?: string;
        /** Deprecated: The `Transaction-Id` header behaves as the `X-Correlation-Id` header. It is supported for
         *  backward compatibility with other IBM platform services that support the `Transaction-Id` header only. If both
         *  `X-Correlation-Id` and `Transaction-Id` are provided, `X-Correlation-Id` has the precedence over
         *  `Transaction-Id`.
         */
        transactionId?: string;
        headers?: OutgoingHttpHeaders;
    }
    /** Parameters for the `replaceRule` operation. */
    interface ReplaceRuleParams {
        /** The ID of a rule. */
        ruleId: string;
        /** The current revision of the resource being updated. This can be found in the Create/Get/Update resource
         *  response ETag header.
         */
        ifMatch: string;
        /** The contexts this rule applies to. */
        contexts?: RuleContext[];
        /** The resources this rule apply to. */
        resources?: Resource[];
        /** The description of the rule. */
        description?: string;
        /** The operations this rule applies to. */
        operations?: NewRuleOperations;
        /** The rule enforcement mode:
         *   * `enabled` - The restrictions are enforced and reported. This is the default.
         *   * `disabled` - The restrictions are disabled. Nothing is enforced or reported.
         *   * `report` - The restrictions are evaluated and reported, but not enforced.
         */
        enforcementMode?: ReplaceRuleConstants.EnforcementMode | string;
        /** The supplied or generated value of this header is logged for a request and repeated in a response header for
         *  the corresponding response. The same value is used for downstream requests and retries of those requests. If a
         *  value of this headers is not supplied in a request, the service generates a random (version 4) UUID.
         */
        xCorrelationId?: string;
        /** Deprecated: The `Transaction-Id` header behaves as the `X-Correlation-Id` header. It is supported for
         *  backward compatibility with other IBM platform services that support the `Transaction-Id` header only. If both
         *  `X-Correlation-Id` and `Transaction-Id` are provided, `X-Correlation-Id` has the precedence over
         *  `Transaction-Id`.
         */
        transactionId?: string;
        headers?: OutgoingHttpHeaders;
    }
    /** Constants for the `replaceRule` operation. */
    namespace ReplaceRuleConstants {
        /** The rule enforcement mode: * `enabled` - The restrictions are enforced and reported. This is the default. * `disabled` - The restrictions are disabled. Nothing is enforced or reported. * `report` - The restrictions are evaluated and reported, but not enforced. */
        enum EnforcementMode {
            ENABLED = "enabled",
            DISABLED = "disabled",
            REPORT = "report"
        }
    }
    /** Parameters for the `deleteRule` operation. */
    interface DeleteRuleParams {
        /** The ID of a rule. */
        ruleId: string;
        /** The supplied or generated value of this header is logged for a request and repeated in a response header for
         *  the corresponding response. The same value is used for downstream requests and retries of those requests. If a
         *  value of this headers is not supplied in a request, the service generates a random (version 4) UUID.
         */
        xCorrelationId?: string;
        /** Deprecated: The `Transaction-Id` header behaves as the `X-Correlation-Id` header. It is supported for
         *  backward compatibility with other IBM platform services that support the `Transaction-Id` header only. If both
         *  `X-Correlation-Id` and `Transaction-Id` are provided, `X-Correlation-Id` has the precedence over
         *  `Transaction-Id`.
         */
        transactionId?: string;
        headers?: OutgoingHttpHeaders;
    }
    /** Parameters for the `getAccountSettings` operation. */
    interface GetAccountSettingsParams {
        /** The ID of the account the settings are for. */
        accountId: string;
        /** The supplied or generated value of this header is logged for a request and repeated in a response header for
         *  the corresponding response. The same value is used for downstream requests and retries of those requests. If a
         *  value of this headers is not supplied in a request, the service generates a random (version 4) UUID.
         */
        xCorrelationId?: string;
        /** Deprecated: The `Transaction-Id` header behaves as the `X-Correlation-Id` header. It is supported for
         *  backward compatibility with other IBM platform services that support the `Transaction-Id` header only. If both
         *  `X-Correlation-Id` and `Transaction-Id` are provided, `X-Correlation-Id` has the precedence over
         *  `Transaction-Id`.
         */
        transactionId?: string;
        headers?: OutgoingHttpHeaders;
    }
    /** Parameters for the `listAvailableServiceOperations` operation. */
    interface ListAvailableServiceOperationsParams {
        /** The supplied or generated value of this header is logged for a request and repeated in a response header for
         *  the corresponding response. The same value is used for downstream requests and retries of those requests. If a
         *  value of this headers is not supplied in a request, the service generates a random (version 4) UUID.
         */
        xCorrelationId?: string;
        /** Deprecated: The `Transaction-Id` header behaves as the `X-Correlation-Id` header. It is supported for
         *  backward compatibility with other IBM platform services that support the `Transaction-Id` header only. If both
         *  `X-Correlation-Id` and `Transaction-Id` are provided, `X-Correlation-Id` has the precedence over
         *  `Transaction-Id`.
         */
        transactionId?: string;
        /** The name of the service. */
        serviceName?: string;
        /** The id of the service group. */
        serviceGroupId?: string;
        /** The type of resource. */
        resourceType?: string;
        headers?: OutgoingHttpHeaders;
    }
    /*************************
     * model interfaces
     ************************/
    /** Service API Type details. */
    interface APIType {
        /** The id of the API type. */
        api_type_id: string;
        /** The displayed name of the API type. */
        display_name: string;
        /** The description of the API type. */
        description: string;
        /** The type of the API type. */
        type: string;
        /** The actions available for the API type. */
        actions: Action[];
        /** The enforcement modes supported by the API type. */
        enforcement_modes?: string[];
    }
    /** An output account settings. */
    interface AccountSettings {
        /** The globally unique ID of the account settings. */
        id: string;
        /** The account settings CRN. */
        crn: string;
        /** the max number of rules allowed for the account. */
        rule_count_limit: number;
        /** the max number of zones allowed for the account. */
        zone_count_limit: number;
        /** the max number of rules with tags allowed for the account. */
        tags_rule_count_limit?: number;
        /** the current number of rules used by the account. */
        current_rule_count: number;
        /** the current number of zones used by the account. */
        current_zone_count: number;
        /** the current number of rules with tags used by the account. */
        current_tags_rule_count?: number;
        /** The href link to the resource. */
        href: string;
        /** The time the resource was created. */
        created_at: string;
        /** IAM ID of the user or service which created the resource. */
        created_by_id: string;
        /** The last time the resource was modified. */
        last_modified_at: string;
        /** IAM ID of the user or service which modified the resource. */
        last_modified_by_id: string;
    }
    /** Service API Type actions. */
    interface Action {
        /** The id of the action. */
        action_id: string;
        /** The description of the action. */
        description: string;
    }
    /** A zone address. */
    interface Address {
        /** The type of address. */
        type?: Address.Constants.Type | string;
    }
    namespace Address {
        namespace Constants {
            /** The type of address. */
            enum Type {
                IPADDRESS = "ipAddress",
                IPRANGE = "ipRange",
                SUBNET = "subnet",
                VPC = "vpc",
                SERVICEREF = "serviceRef"
            }
        }
    }
    /** The operations this rule applies to. */
    interface NewRuleOperations {
        /** The API types this rule applies to. */
        api_types: NewRuleOperationsApiTypesItem[];
    }
    /** NewRuleOperationsApiTypesItem. */
    interface NewRuleOperationsApiTypesItem {
        api_type_id: string;
    }
    /** The response object of the `list_available_service_operations` operation. */
    interface OperationsList {
        /** The returned API types. */
        api_types: APIType[];
    }
    /** An rule resource. */
    interface Resource {
        /** The resource attributes. */
        attributes: ResourceAttribute[];
        /** The optional resource tags. */
        tags?: ResourceTagAttribute[];
    }
    /** A rule resource attribute. */
    interface ResourceAttribute {
        /** The attribute name. */
        name: string;
        /** The attribute value. */
        value: string;
        /** The attribute operator. */
        operator?: string;
    }
    /** A rule resource tag attribute. */
    interface ResourceTagAttribute {
        /** The tag attribute name. */
        name: string;
        /** The tag attribute value. */
        value: string;
        /** The attribute operator. */
        operator?: string;
    }
    /** An output rule. */
    interface Rule {
        /** The globally unique ID of the rule. */
        id: string;
        /** The rule CRN. */
        crn: string;
        /** The description of the rule. */
        description: string;
        /** The contexts this rule applies to. */
        contexts: RuleContext[];
        /** The resources this rule apply to. */
        resources: Resource[];
        /** The operations this rule applies to. */
        operations?: NewRuleOperations;
        /** The rule enforcement mode:
         *   * `enabled` - The restrictions are enforced and reported. This is the default.
         *   * `disabled` - The restrictions are disabled. Nothing is enforced or reported.
         *   * `report` - The restrictions are evaluated and reported, but not enforced.
         */
        enforcement_mode?: Rule.Constants.EnforcementMode | string;
        /** The href link to the resource. */
        href: string;
        /** The time the resource was created. */
        created_at: string;
        /** IAM ID of the user or service which created the resource. */
        created_by_id: string;
        /** The last time the resource was modified. */
        last_modified_at: string;
        /** IAM ID of the user or service which modified the resource. */
        last_modified_by_id: string;
    }
    namespace Rule {
        namespace Constants {
            /** The rule enforcement mode: * `enabled` - The restrictions are enforced and reported. This is the default. * `disabled` - The restrictions are disabled. Nothing is enforced or reported. * `report` - The restrictions are evaluated and reported, but not enforced. */
            enum EnforcementMode {
                ENABLED = "enabled",
                DISABLED = "disabled",
                REPORT = "report"
            }
        }
    }
    /** A rule context. */
    interface RuleContext {
        /** The attributes. */
        attributes: RuleContextAttribute[];
    }
    /** An rule context attribute. */
    interface RuleContextAttribute {
        /** The attribute name. */
        name: string;
        /** The attribute value. */
        value: string;
    }
    /** The response object of the ListRules operation. */
    interface RuleList {
        /** The number of returned results. */
        count: number;
        /** The returned rules. */
        rules: Rule[];
    }
    /** Summary information about a service reference target. */
    interface ServiceRefTarget {
        /** The name of the service. */
        service_name: string;
        /** The type of the service. */
        service_type?: string;
        /** The locations the service is available. */
        locations?: ServiceRefTargetLocationsItem[];
    }
    /** A list of service reference targets. */
    interface ServiceRefTargetList {
        /** The number of returned results. */
        count: number;
        /** The list of service reference targets. */
        targets: ServiceRefTarget[];
    }
    /** ServiceRefTargetLocationsItem. */
    interface ServiceRefTargetLocationsItem {
        /** The location display name. */
        display_name?: string;
        /** The location kind. */
        kind?: string;
        /** The location name. */
        name: string;
    }
    /** A service reference value. */
    interface ServiceRefValue {
        /** The id of the account owning the service. */
        account_id: string;
        /** The service type. */
        service_type?: string;
        /** The service name. */
        service_name?: string;
        /** The service instance. */
        service_instance?: string;
        /** The location. */
        location?: string;
    }
    /** An output zone. */
    interface Zone {
        /** The globally unique ID of the zone. */
        id: string;
        /** The zone CRN. */
        crn: string;
        /** The number of addresses in the zone. */
        address_count: number;
        /** The number of excluded addresses in the zone. */
        excluded_count: number;
        /** The name of the zone. */
        name: string;
        /** The id of the account owning this zone. */
        account_id: string;
        /** The description of the zone. */
        description: string;
        /** The list of addresses in the zone. */
        addresses: Address[];
        /** The list of excluded addresses in the zone. Only addresses of type `ipAddress`, `ipRange`, and `subnet` can
         *  be excluded.
         */
        excluded: Address[];
        /** The href link to the resource. */
        href: string;
        /** The time the resource was created. */
        created_at: string;
        /** IAM ID of the user or service which created the resource. */
        created_by_id: string;
        /** The last time the resource was modified. */
        last_modified_at: string;
        /** IAM ID of the user or service which modified the resource. */
        last_modified_by_id: string;
    }
    /** The response object of the ListZones operation. */
    interface ZoneList {
        /** The number of returned results. */
        count: number;
        /** The returned zones. */
        zones: ZoneSummary[];
    }
    /** An output zone summary. */
    interface ZoneSummary {
        /** The globally unique ID of the zone. */
        id: string;
        /** The zone CRN. */
        crn: string;
        /** The name of the zone. */
        name: string;
        /** The description of the zone. */
        description?: string;
        /** A preview of addresses in the zone (3 addresses maximum). */
        addresses_preview: Address[];
        /** The number of addresses in the zone. */
        address_count: number;
        /** The number of excluded addresses in the zone. */
        excluded_count: number;
        /** The href link to the resource. */
        href: string;
        /** The time the resource was created. */
        created_at: string;
        /** IAM ID of the user or service which created the resource. */
        created_by_id: string;
        /** The last time the resource was modified. */
        last_modified_at: string;
        /** IAM ID of the user or service which modified the resource. */
        last_modified_by_id: string;
    }
    /** A single IP address. IPv4 and IPv6 are supported. */
    interface AddressIPAddress extends Address {
        /** The type of address. */
        type: AddressIPAddress.Constants.Type | string;
        /** The IP address. */
        value: string;
    }
    namespace AddressIPAddress {
        namespace Constants {
            /** The type of address. */
            enum Type {
                IPADDRESS = "ipAddress"
            }
        }
    }
    /** An IP address range. IPv4 and IPv6 are supported. */
    interface AddressIPAddressRange extends Address {
        /** The type of address. */
        type: AddressIPAddressRange.Constants.Type | string;
        /** The ip range in <first-ip>-<last-ip> format. */
        value: string;
    }
    namespace AddressIPAddressRange {
        namespace Constants {
            /** The type of address. */
            enum Type {
                IPRANGE = "ipRange"
            }
        }
    }
    /** A service reference. */
    interface AddressServiceRef extends Address {
        /** The type of address. */
        type: AddressServiceRef.Constants.Type | string;
        /** A service reference value. */
        ref: ServiceRefValue;
    }
    namespace AddressServiceRef {
        namespace Constants {
            /** The type of address. */
            enum Type {
                SERVICEREF = "serviceRef"
            }
        }
    }
    /** A subnet in CIDR format. */
    interface AddressSubnet extends Address {
        /** The type of address. */
        type: AddressSubnet.Constants.Type | string;
        /** The subnet in CIDR format. */
        value: string;
    }
    namespace AddressSubnet {
        namespace Constants {
            /** The type of address. */
            enum Type {
                SUBNET = "subnet"
            }
        }
    }
    /** A single VPC address. */
    interface AddressVPC extends Address {
        /** The type of address. */
        type: AddressVPC.Constants.Type | string;
        /** The VPC CRN. */
        value: string;
    }
    namespace AddressVPC {
        namespace Constants {
            /** The type of address. */
            enum Type {
                VPC = "vpc"
            }
        }
    }
}
export = ContextBasedRestrictionsV1;
