Class WaasClient

  • All Implemented Interfaces:
    Waas, AutoCloseable

    @Generated(value="OracleSDKGenerator",
               comments="API Version: 20181116")
    public class WaasClient
    extends BaseSyncClient
    implements Waas
    • Field Detail

      • SERVICE

        public static final Service SERVICE
        Service instance for Waas.
      • clientCommonLibraryVersion

        public final String clientCommonLibraryVersion
        Compatible SDK version, provided by the codegen.
      • minimumClientCommonLibraryVersionFromClient

        public final Optional<String> minimumClientCommonLibraryVersionFromClient
        Minimum compatible SDK version, maybe provided by the codegen.
    • Method Detail

      • builder

        public static WaasClient.Builder builder()
        Create a builder for this client.
        Returns:
        builder
      • setRegion

        public void setRegion​(Region region)
        Description copied from interface: Waas
        Sets the region to call (ex, Region.US_PHOENIX_1).

        Note, this will call setEndpoint after resolving the endpoint. If the service is not available in this Region, however, an IllegalArgumentException will be raised.

        Specified by:
        setRegion in interface Waas
        Parameters:
        region - The region of the service.
      • setRegion

        public void setRegion​(String regionId)
        Description copied from interface: Waas
        Sets the region to call (ex, ‘us-phoenix-1’).

        Note, this will first try to map the region ID to a known Region and call setRegion.

        If no known Region could be determined, it will create an endpoint based on the default endpoint format (Region.formatDefaultRegionEndpoint(Service, String) and then call setEndpoint.

        Specified by:
        setRegion in interface Waas
        Parameters:
        regionId - The public region ID.
      • acceptRecommendations

        public AcceptRecommendationsResponse acceptRecommendations​(AcceptRecommendationsRequest request)
        Description copied from interface: Waas
        Accepts a list of recommended Web Application Firewall protection rules.

        Web Application Firewall protection rule recommendations are sets of rules generated by observed traffic patterns through the Web Application Firewall and are meant to optimize the Web Application Firewall’s security profile. Only the rules specified in the request body will be updated; all other rules will remain unchanged.

        Use the `GET /waasPolicies/{waasPolicyId}/wafConfig/recommendations` method to view a list of recommended Web Application Firewall protection rules. For more information, see [WAF Protection Rules](https://docs.oracle.com/iaas/Content/WAF/Tasks/wafprotectionrules.htm).

        Specified by:
        acceptRecommendations in interface Waas
        Parameters:
        request - The request object containing the details to send
        Returns:
        A response object containing details about the completed operation
      • cancelWorkRequest

        public CancelWorkRequestResponse cancelWorkRequest​(CancelWorkRequestRequest request)
        Description copied from interface: Waas
        Cancels a specified work request.
        Specified by:
        cancelWorkRequest in interface Waas
        Parameters:
        request - The request object containing the details to send
        Returns:
        A response object containing details about the completed operation
      • createAddressList

        public CreateAddressListResponse createAddressList​(CreateAddressListRequest request)
        Description copied from interface: Waas
        Creates an address list in a set compartment and allows it to be used in a WAAS policy and referenced by access rules.

        Addresses can be IP addresses and CIDR notations.

        Specified by:
        createAddressList in interface Waas
        Parameters:
        request - The request object containing the details to send
        Returns:
        A response object containing details about the completed operation
      • createCertificate

        public CreateCertificateResponse createCertificate​(CreateCertificateRequest request)
        Description copied from interface: Waas
        Allows an SSL certificate to be added to a WAAS policy.

        The Web Application Firewall terminates SSL connections to inspect requests in runtime, and then re-encrypts requests before sending them to the origin for fulfillment.

        For more information, see [WAF Settings](https://docs.oracle.com/iaas/Content/WAF/Tasks/wafsettings.htm).

        Specified by:
        createCertificate in interface Waas
        Parameters:
        request - The request object containing the details to send
        Returns:
        A response object containing details about the completed operation
      • createCustomProtectionRule

        public CreateCustomProtectionRuleResponse createCustomProtectionRule​(CreateCustomProtectionRuleRequest request)
        Description copied from interface: Waas
        Creates a new custom protection rule in the specified compartment.

        Custom protection rules allow you to create rules in addition to the rulesets provided by the Web Application Firewall service, including rules from [ModSecurity](https://modsecurity.org/). The syntax for custom rules is based on the ModSecurity syntax. For more information about custom protection rules, see [Custom Protection Rules](https://docs.oracle.com/iaas/Content/WAF/Tasks/customprotectionrules.htm).

        Specified by:
        createCustomProtectionRule in interface Waas
        Parameters:
        request - The request object containing the details to send
        Returns:
        A response object containing details about the completed operation
      • createWaasPolicy

        public CreateWaasPolicyResponse createWaasPolicy​(CreateWaasPolicyRequest request)
        Description copied from interface: Waas
        Creates a new Web Application Acceleration and Security (WAAS) policy in the specified compartment.

        A WAAS policy must be established before creating Web Application Firewall (WAF) rules. To use WAF rules, your web application’s origin servers must defined in the WaasPolicy schema.

        A domain name must be specified when creating a WAAS policy. The domain name should be different from the origins specified in your `WaasPolicy`. Once domain name is entered and stored, it is unchangeable.

        Use the record data returned in the `cname` field of the `WaasPolicy` object to create a CNAME record in your DNS configuration that will direct your domain's traffic through the WAF.

        For the purposes of access control, you must provide the OCID of the compartment where you want the service to reside. For information about access control and compartments, see [Overview of the IAM Service](https://docs.oracle.com/iaas/Content/Identity/Concepts/overview.htm).

        You must specify a display name and domain for the WAAS policy. The display name does not have to be unique and can be changed. The domain name should be different from every origin specified in `WaasPolicy`.

        All Oracle Cloud Infrastructure resources, including WAAS policies, receive a unique, Oracle-assigned ID called an Oracle Cloud Identifier (OCID). When a resource is created, you can find its OCID in the response. You can also retrieve a resource's OCID by using a list API operation for that resource type, or by viewing the resource in the Console. Fore more information, see [Resource Identifiers](https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm).

        *Note:** After sending the POST request, the new object's state will temporarily be `CREATING`. Ensure that the resource's state has changed to `ACTIVE` before use.

        Specified by:
        createWaasPolicy in interface Waas
        Parameters:
        request - The request object containing the details to send
        Returns:
        A response object containing details about the completed operation
      • deleteAddressList

        public DeleteAddressListResponse deleteAddressList​(DeleteAddressListRequest request)
        Description copied from interface: Waas
        Deletes the address list from the compartment if it is not used.
        Specified by:
        deleteAddressList in interface Waas
        Parameters:
        request - The request object containing the details to send
        Returns:
        A response object containing details about the completed operation
      • deleteCertificate

        public DeleteCertificateResponse deleteCertificate​(DeleteCertificateRequest request)
        Description copied from interface: Waas
        Deletes an SSL certificate from the WAAS service.
        Specified by:
        deleteCertificate in interface Waas
        Parameters:
        request - The request object containing the details to send
        Returns:
        A response object containing details about the completed operation
      • deleteWaasPolicy

        public DeleteWaasPolicyResponse deleteWaasPolicy​(DeleteWaasPolicyRequest request)
        Description copied from interface: Waas
        Deletes a policy.
        Specified by:
        deleteWaasPolicy in interface Waas
        Parameters:
        request - The request object containing the details to send
        Returns:
        A response object containing details about the completed operation
      • getAddressList

        public GetAddressListResponse getAddressList​(GetAddressListRequest request)
        Description copied from interface: Waas
        Gets the details of an address list.
        Specified by:
        getAddressList in interface Waas
        Parameters:
        request - The request object containing the details to send
        Returns:
        A response object containing details about the completed operation
      • getCertificate

        public GetCertificateResponse getCertificate​(GetCertificateRequest request)
        Description copied from interface: Waas
        Gets the details of an SSL certificate.
        Specified by:
        getCertificate in interface Waas
        Parameters:
        request - The request object containing the details to send
        Returns:
        A response object containing details about the completed operation
      • getJsChallenge

        public GetJsChallengeResponse getJsChallenge​(GetJsChallengeRequest request)
        Description copied from interface: Waas
        Gets the JavaScript challenge settings in the Web Application Firewall configuration for a WAAS policy.
        Specified by:
        getJsChallenge in interface Waas
        Parameters:
        request - The request object containing the details to send
        Returns:
        A response object containing details about the completed operation
      • getPolicyConfig

        public GetPolicyConfigResponse getPolicyConfig​(GetPolicyConfigRequest request)
        Description copied from interface: Waas
        Gets the configuration of a WAAS policy.
        Specified by:
        getPolicyConfig in interface Waas
        Parameters:
        request - The request object containing the details to send
        Returns:
        A response object containing details about the completed operation
      • getProtectionRule

        public GetProtectionRuleResponse getProtectionRule​(GetProtectionRuleRequest request)
        Description copied from interface: Waas
        Gets the details of a protection rule in the Web Application Firewall configuration for a WAAS policy.
        Specified by:
        getProtectionRule in interface Waas
        Parameters:
        request - The request object containing the details to send
        Returns:
        A response object containing details about the completed operation
      • getProtectionSettings

        public GetProtectionSettingsResponse getProtectionSettings​(GetProtectionSettingsRequest request)
        Description copied from interface: Waas
        Gets the protection settings in the Web Application Firewall configuration for a WAAS policy.
        Specified by:
        getProtectionSettings in interface Waas
        Parameters:
        request - The request object containing the details to send
        Returns:
        A response object containing details about the completed operation
      • getWaasPolicy

        public GetWaasPolicyResponse getWaasPolicy​(GetWaasPolicyRequest request)
        Description copied from interface: Waas
        Gets the details of a WAAS policy.
        Specified by:
        getWaasPolicy in interface Waas
        Parameters:
        request - The request object containing the details to send
        Returns:
        A response object containing details about the completed operation
      • getWafAddressRateLimiting

        public GetWafAddressRateLimitingResponse getWafAddressRateLimiting​(GetWafAddressRateLimitingRequest request)
        Description copied from interface: Waas
        Gets the address rate limiting settings of the Web Application Firewall configuration for a WAAS policy.
        Specified by:
        getWafAddressRateLimiting in interface Waas
        Parameters:
        request - The request object containing the details to send
        Returns:
        A response object containing details about the completed operation
      • getWafConfig

        public GetWafConfigResponse getWafConfig​(GetWafConfigRequest request)
        Description copied from interface: Waas
        Gets the Web Application Firewall configuration details for a WAAS policy.
        Specified by:
        getWafConfig in interface Waas
        Parameters:
        request - The request object containing the details to send
        Returns:
        A response object containing details about the completed operation
      • getWorkRequest

        public GetWorkRequestResponse getWorkRequest​(GetWorkRequestRequest request)
        Description copied from interface: Waas
        Gets the details of a specified work request.
        Specified by:
        getWorkRequest in interface Waas
        Parameters:
        request - The request object containing the details to send
        Returns:
        A response object containing details about the completed operation
      • listAccessRules

        public ListAccessRulesResponse listAccessRules​(ListAccessRulesRequest request)
        Description copied from interface: Waas
        Gets the currently configured access rules for the Web Application Firewall configuration of a specified WAAS policy.

        The order of the access rules is important. The rules will be checked in the order they are specified and the first matching rule will be used.

        Specified by:
        listAccessRules in interface Waas
        Parameters:
        request - The request object containing the details to send
        Returns:
        A response object containing details about the completed operation
      • listAddressLists

        public ListAddressListsResponse listAddressLists​(ListAddressListsRequest request)
        Description copied from interface: Waas
        Gets a list of address lists that can be used in a WAAS policy.
        Specified by:
        listAddressLists in interface Waas
        Parameters:
        request - The request object containing the details to send
        Returns:
        A response object containing details about the completed operation
      • listCachingRules

        public ListCachingRulesResponse listCachingRules​(ListCachingRulesRequest request)
        Description copied from interface: Waas
        Gets the currently configured caching rules for the Web Application Firewall configuration of a specified WAAS policy.

        The rules are processed in the order they are specified in and the first matching rule will be used when processing a request.

        Specified by:
        listCachingRules in interface Waas
        Parameters:
        request - The request object containing the details to send
        Returns:
        A response object containing details about the completed operation
      • listCaptchas

        public ListCaptchasResponse listCaptchas​(ListCaptchasRequest request)
        Description copied from interface: Waas
        Gets the list of currently configured CAPTCHA challenges in the Web Application Firewall configuration of a WAAS policy.

        The order of the CAPTCHA challenges is important. The URL for each CAPTCHA will be checked in the order they are created.

        Specified by:
        listCaptchas in interface Waas
        Parameters:
        request - The request object containing the details to send
        Returns:
        A response object containing details about the completed operation
      • listCertificates

        public ListCertificatesResponse listCertificates​(ListCertificatesRequest request)
        Description copied from interface: Waas
        Gets a list of SSL certificates that can be used in a WAAS policy.
        Specified by:
        listCertificates in interface Waas
        Parameters:
        request - The request object containing the details to send
        Returns:
        A response object containing details about the completed operation
      • listEdgeSubnets

        public ListEdgeSubnetsResponse listEdgeSubnets​(ListEdgeSubnetsRequest request)
        Description copied from interface: Waas
        Return the list of the tenant’s edge node subnets.

        Use these CIDR blocks to restrict incoming traffic to your origin. These subnets are owned by OCI and forward traffic to customer origins. They are not associated with specific regions or compartments.

        Specified by:
        listEdgeSubnets in interface Waas
        Parameters:
        request - The request object containing the details to send
        Returns:
        A response object containing details about the completed operation
      • listGoodBots

        public ListGoodBotsResponse listGoodBots​(ListGoodBotsRequest request)
        Description copied from interface: Waas
        Gets the list of good bots defined in the Web Application Firewall configuration for a WAAS policy.

        The list is sorted by `key`, in ascending order.

        Specified by:
        listGoodBots in interface Waas
        Parameters:
        request - The request object containing the details to send
        Returns:
        A response object containing details about the completed operation
      • listProtectionRules

        public ListProtectionRulesResponse listProtectionRules​(ListProtectionRulesRequest request)
        Description copied from interface: Waas
        Gets the list of available protection rules for a WAAS policy.

        Use the GetWafConfig operation to view a list of currently configured protection rules for the Web Application Firewall, or use the ListRecommendations operation to get a list of recommended protection rules for the Web Application Firewall. The list is sorted by key, in ascending order.

        Specified by:
        listProtectionRules in interface Waas
        Parameters:
        request - The request object containing the details to send
        Returns:
        A response object containing details about the completed operation
      • listRecommendations

        public ListRecommendationsResponse listRecommendations​(ListRecommendationsRequest request)
        Description copied from interface: Waas
        Gets the list of recommended Web Application Firewall protection rules.

        Use the `POST /waasPolicies/{waasPolicyId}/actions/acceptWafConfigRecommendations` method to accept recommended Web Application Firewall protection rules. For more information, see [WAF Protection Rules](https://docs.oracle.com/iaas/Content/WAF/Tasks/wafprotectionrules.htm). The list is sorted by `key`, in ascending order.

        Specified by:
        listRecommendations in interface Waas
        Parameters:
        request - The request object containing the details to send
        Returns:
        A response object containing details about the completed operation
      • listThreatFeeds

        public ListThreatFeedsResponse listThreatFeeds​(ListThreatFeedsRequest request)
        Description copied from interface: Waas
        Gets the list of available web application threat intelligence feeds and the actions set for each feed.

        The list is sorted by key, in ascending order.

        Specified by:
        listThreatFeeds in interface Waas
        Parameters:
        request - The request object containing the details to send
        Returns:
        A response object containing details about the completed operation
      • listWaasPolicies

        public ListWaasPoliciesResponse listWaasPolicies​(ListWaasPoliciesRequest request)
        Description copied from interface: Waas
        Gets a list of WAAS policies.
        Specified by:
        listWaasPolicies in interface Waas
        Parameters:
        request - The request object containing the details to send
        Returns:
        A response object containing details about the completed operation
      • listWafBlockedRequests

        public ListWafBlockedRequestsResponse listWafBlockedRequests​(ListWafBlockedRequestsRequest request)
        Description copied from interface: Waas
        Gets the number of blocked requests by a Web Application Firewall feature in five minute blocks, sorted by timeObserved in ascending order (starting from oldest data).
        Specified by:
        listWafBlockedRequests in interface Waas
        Parameters:
        request - The request object containing the details to send
        Returns:
        A response object containing details about the completed operation
      • listWafLogs

        public ListWafLogsResponse listWafLogs​(ListWafLogsRequest request)
        Description copied from interface: Waas
        Gets structured Web Application Firewall event logs for a WAAS policy.

        Sorted by the timeObserved in ascending order (starting from the oldest recorded event).

        Specified by:
        listWafLogs in interface Waas
        Parameters:
        request - The request object containing the details to send
        Returns:
        A response object containing details about the completed operation
      • listWafRequests

        public ListWafRequestsResponse listWafRequests​(ListWafRequestsRequest request)
        Description copied from interface: Waas
        Gets the number of requests managed by a Web Application Firewall over a specified period of time, including blocked requests.

        Sorted by timeObserved in ascending order (starting from oldest requests).

        Specified by:
        listWafRequests in interface Waas
        Parameters:
        request - The request object containing the details to send
        Returns:
        A response object containing details about the completed operation
      • listWafTraffic

        public ListWafTrafficResponse listWafTraffic​(ListWafTrafficRequest request)
        Description copied from interface: Waas
        Gets the Web Application Firewall traffic data for a WAAS policy.

        Sorted by timeObserved in ascending order (starting from oldest data).

        Specified by:
        listWafTraffic in interface Waas
        Parameters:
        request - The request object containing the details to send
        Returns:
        A response object containing details about the completed operation
      • listWhitelists

        public ListWhitelistsResponse listWhitelists​(ListWhitelistsRequest request)
        Description copied from interface: Waas
        Gets the list of whitelists defined in the Web Application Firewall configuration for a WAAS policy.
        Specified by:
        listWhitelists in interface Waas
        Parameters:
        request - The request object containing the details to send
        Returns:
        A response object containing details about the completed operation
      • listWorkRequests

        public ListWorkRequestsResponse listWorkRequests​(ListWorkRequestsRequest request)
        Description copied from interface: Waas
        Gets a list of subnets (CIDR notation) from which the WAAS EDGE may make requests.

        The subnets are owned by OCI and forward traffic to your origins. Allow traffic from these subnets to your origins. They are not associated with specific regions or compartments.

        Specified by:
        listWorkRequests in interface Waas
        Parameters:
        request - The request object containing the details to send
        Returns:
        A response object containing details about the completed operation
      • purgeCache

        public PurgeCacheResponse purgeCache​(PurgeCacheRequest request)
        Description copied from interface: Waas
        Performs a purge of the cache for each specified resource.

        If no resources are passed, the cache for the entire Web Application Firewall will be purged. For more information, see Caching Rules.

        Specified by:
        purgeCache in interface Waas
        Parameters:
        request - The request object containing the details to send
        Returns:
        A response object containing details about the completed operation
      • updateAccessRules

        public UpdateAccessRulesResponse updateAccessRules​(UpdateAccessRulesRequest request)
        Description copied from interface: Waas
        Updates the list of access rules in the Web Application Firewall configuration for a specified WAAS policy.

        Access rules allow explicit actions to be defined and executed for requests that meet various conditions. A rule action can be set to allow, detect, or block requests. The detect setting allows the request to pass through the Web Application Firewall and is tagged with a DETECT flag in the Web Application Firewall’s log.

        This operation can create, delete, update, and/or reorder access rules depending on the structure of the request body.

        Access rules can be updated by changing the properties of the access rule object with the rule's key specified in the key field. Access rules can be reordered by changing the order of the access rules in the list when updating.

        Access rules can be created by adding a new access rule object to the list without a `key` property specified. A `key` will be generated for the new access rule upon update.

        Any existing access rules that are not specified with a `key` in the list of access rules will be deleted upon update.

        Specified by:
        updateAccessRules in interface Waas
        Parameters:
        request - The request object containing the details to send
        Returns:
        A response object containing details about the completed operation
      • updateAddressList

        public UpdateAddressListResponse updateAddressList​(UpdateAddressListRequest request)
        Description copied from interface: Waas
        Updates the details of an address list.

        Only the fields specified in the request body will be updated; all other properties will remain unchanged.

        Specified by:
        updateAddressList in interface Waas
        Parameters:
        request - The request object containing the details to send
        Returns:
        A response object containing details about the completed operation
      • updateCachingRules

        public UpdateCachingRulesResponse updateCachingRules​(UpdateCachingRulesRequest request)
        Description copied from interface: Waas
        Updates the configuration for each specified caching rule.

        Caching rules WAF policies allow you to selectively cache content on Oracle Cloud Infrastructure's edge servers, such as webpages or certain file types. For more information about caching rules, see [Caching Rules](https://docs.oracle.com/iaas/Content/WAF/Tasks/cachingrules.htm).

        This operation can create, delete, update, and/or reorder caching rules depending on the structure of the request body. Caching rules can be updated by changing the properties of the caching rule object with the rule's key specified in the key field. Any existing caching rules that are not specified with a key in the list of access rules will be deleted upon update.

        The order the caching rules are specified in is important. The rules are processed in the order they are specified and the first matching rule will be used when processing a request. Use `ListCachingRules` to view a list of all available caching rules in a compartment.

        Specified by:
        updateCachingRules in interface Waas
        Parameters:
        request - The request object containing the details to send
        Returns:
        A response object containing details about the completed operation
      • updateCaptchas

        public UpdateCaptchasResponse updateCaptchas​(UpdateCaptchasRequest request)
        Description copied from interface: Waas
        Updates the list of CAPTCHA challenges in the Web Application Firewall configuration for a WAAS policy.

        This operation can create, update, or delete CAPTCHAs depending on the structure of the request body. CAPTCHA challenges can be updated by changing the properties of the CAPTCHA object with the rule’s key specified in the key field. CAPTCHA challenges can be reordered by changing the order of the CAPTCHA challenges in the list when updating.

        CAPTCHA challenges can be created by adding a new access rule object to the list without a `key` property specified. A `key` will be generated for the new CAPTCHA challenges upon update.

        Any existing CAPTCHA challenges that are not specified with a `key` in the list of CAPTCHA challenges will be deleted upon update.

        Query parameters are allowed in CAPTCHA URL.

        Specified by:
        updateCaptchas in interface Waas
        Parameters:
        request - The request object containing the details to send
        Returns:
        A response object containing details about the completed operation
      • updateCertificate

        public UpdateCertificateResponse updateCertificate​(UpdateCertificateRequest request)
        Description copied from interface: Waas
        It is not possible to update a certificate, only create and delete.

        Therefore, this operation can only update the display name, freeform tags, and defined tags of a certificate.

        Specified by:
        updateCertificate in interface Waas
        Parameters:
        request - The request object containing the details to send
        Returns:
        A response object containing details about the completed operation
      • updateCustomProtectionRule

        public UpdateCustomProtectionRuleResponse updateCustomProtectionRule​(UpdateCustomProtectionRuleRequest request)
        Description copied from interface: Waas
        Updates the configuration of a custom protection rule.

        Only the fields specified in the request body will be updated; all other properties will remain unchanged.

        Specified by:
        updateCustomProtectionRule in interface Waas
        Parameters:
        request - The request object containing the details to send
        Returns:
        A response object containing details about the completed operation
      • updateDeviceFingerprintChallenge

        public UpdateDeviceFingerprintChallengeResponse updateDeviceFingerprintChallenge​(UpdateDeviceFingerprintChallengeRequest request)
        Description copied from interface: Waas
        Updates the Device Fingerprint Challenge (DFC) settings in the Web Application Firewall configuration for a policy.

        The DFC generates a hashed signature of both virtual and real browsers based on 50+ attributes. These proprietary signatures are then leveraged for real-time correlation to identify and block malicious bots.

        The signature is based on a library of attributes detected via JavaScript listeners; the attributes include OS, screen resolution, fonts, UserAgent, IP address, etc. We are constantly making improvements and considering new libraries to include in our DFC build. We can also exclude attributes from the signature as needed.

        DFC collects attributes to generate a hashed signature about a client - if a fingerprint is not possible, then it will result in a block or alert action. Actions can be enforced across multiple devices if they share they have the same fingerprint.

        Specified by:
        updateDeviceFingerprintChallenge in interface Waas
        Parameters:
        request - The request object containing the details to send
        Returns:
        A response object containing details about the completed operation
      • updateGoodBots

        public UpdateGoodBotsResponse updateGoodBots​(UpdateGoodBotsRequest request)
        Description copied from interface: Waas
        Updates the list of good bots in the Web Application Firewall configuration for a policy.

        Only the fields specified in the request body will be updated, all other configuration properties will remain unchanged.

        Good bots allows you to manage access for bots from known providers, such as Google or Baidu. For more information about good bots, see [Bot Management](https://docs.oracle.com/iaas/Content/WAF/Tasks/botmanagement.htm).

        Specified by:
        updateGoodBots in interface Waas
        Parameters:
        request - The request object containing the details to send
        Returns:
        A response object containing details about the completed operation
      • updateHumanInteractionChallenge

        public UpdateHumanInteractionChallengeResponse updateHumanInteractionChallenge​(UpdateHumanInteractionChallengeRequest request)
        Description copied from interface: Waas
        Updates the Human Interaction Challenge (HIC) settings in the Web Application Firewall configuration for a WAAS policy.

        HIC is a countermeasure that allows the proxy to check the user’s browser for various behaviors that distinguish a human presence from a bot.

        Specified by:
        updateHumanInteractionChallenge in interface Waas
        Parameters:
        request - The request object containing the details to send
        Returns:
        A response object containing details about the completed operation
      • updateJsChallenge

        public UpdateJsChallengeResponse updateJsChallenge​(UpdateJsChallengeRequest request)
        Description copied from interface: Waas
        Updates the JavaScript challenge settings in the Web Application Firewall configuration for a WAAS policy.

        JavaScript Challenge validates that the client can accept JavaScript with a binary decision. For more information, see Bot Management.

        Specified by:
        updateJsChallenge in interface Waas
        Parameters:
        request - The request object containing the details to send
        Returns:
        A response object containing details about the completed operation
      • updatePolicyConfig

        public UpdatePolicyConfigResponse updatePolicyConfig​(UpdatePolicyConfigRequest request)
        Description copied from interface: Waas
        Updates the configuration for a WAAS policy.

        Only the fields specified in the request body will be updated; all other properties will remain unchanged.

        Specified by:
        updatePolicyConfig in interface Waas
        Parameters:
        request - The request object containing the details to send
        Returns:
        A response object containing details about the completed operation
      • updateProtectionRules

        public UpdateProtectionRulesResponse updateProtectionRules​(UpdateProtectionRulesRequest request)
        Description copied from interface: Waas
        Updates the action for each specified protection rule.

        Requests can either be allowed, blocked, or trigger an alert if they meet the parameters of an applied rule. For more information on protection rules, see WAF Protection Rules. This operation can update or disable protection rules depending on the structure of the request body. Protection rules can be updated by changing the properties of the protection rule object with the rule’s key specified in the key field.

        Specified by:
        updateProtectionRules in interface Waas
        Parameters:
        request - The request object containing the details to send
        Returns:
        A response object containing details about the completed operation
      • updateProtectionSettings

        public UpdateProtectionSettingsResponse updateProtectionSettings​(UpdateProtectionSettingsRequest request)
        Description copied from interface: Waas
        Updates the protection settings in the Web Application Firewall configuration for a WAAS policy.

        Protection settings allow you define what action is taken when a request is blocked by the Web Application Firewall, such as returning a response code or block page. Only the fields specified in the request body will be updated; all other fields will remain unchanged.

        Specified by:
        updateProtectionSettings in interface Waas
        Parameters:
        request - The request object containing the details to send
        Returns:
        A response object containing details about the completed operation
      • updateThreatFeeds

        public UpdateThreatFeedsResponse updateThreatFeeds​(UpdateThreatFeedsRequest request)
        Description copied from interface: Waas
        Updates the action to take when a request’s IP address matches an address in the specified threat intelligence feed.

        Threat intelligence feeds are compiled lists of IP addresses with malicious reputations based on internet intelligence. Only the threat feeds specified in the request body will be updated; all other threat feeds will remain unchanged.

        Specified by:
        updateThreatFeeds in interface Waas
        Parameters:
        request - The request object containing the details to send
        Returns:
        A response object containing details about the completed operation
      • updateWaasPolicy

        public UpdateWaasPolicyResponse updateWaasPolicy​(UpdateWaasPolicyRequest request)
        Description copied from interface: Waas
        Updates the details of a WAAS policy, including origins and tags.

        Only the fields specified in the request body will be updated; all other properties will remain unchanged. To update platform provided resources such as GoodBots, ProtectionRules, and ThreatFeeds, first retrieve the list of available resources with the related list operation such as GetThreatFeeds or GetProtectionRules. The returned list will contain objects with key properties that can be used to update the resource during the UpdateWaasPolicy request.

        Specified by:
        updateWaasPolicy in interface Waas
        Parameters:
        request - The request object containing the details to send
        Returns:
        A response object containing details about the completed operation
      • updateWafAddressRateLimiting

        public UpdateWafAddressRateLimitingResponse updateWafAddressRateLimiting​(UpdateWafAddressRateLimitingRequest request)
        Description copied from interface: Waas
        Updates the address rate limiting settings in the Web Application Firewall configuration for a policy.

        Rate limiting allows you to configure a threshold for the number of requests from a unique IP address for the given period. You can also define the response code for the requests from the same address that exceed the threshold.

        Specified by:
        updateWafAddressRateLimiting in interface Waas
        Parameters:
        request - The request object containing the details to send
        Returns:
        A response object containing details about the completed operation
      • updateWafConfig

        public UpdateWafConfigResponse updateWafConfig​(UpdateWafConfigRequest request)
        Description copied from interface: Waas
        Updates the Web Application Firewall configuration for a specified WAAS policy.

        To update platform provided resources such as `GoodBots`, `ProtectionRules`, and `ThreatFeeds`, first retrieve the list of available resources with the related list operation, such as `GetThreatFeeds` or `GetProtectionRules`.

        The returned list will contain objects with `key` properties that can be used to update the resource during the `UpdateWafConfig` request.

        Specified by:
        updateWafConfig in interface Waas
        Parameters:
        request - The request object containing the details to send
        Returns:
        A response object containing details about the completed operation
      • updateWhitelists

        public UpdateWhitelistsResponse updateWhitelists​(UpdateWhitelistsRequest request)
        Description copied from interface: Waas
        Updates the list of IP addresses that bypass the Web Application Firewall for a WAAS policy.

        Supports single IP addresses, subnet masks (CIDR notation) and Address Lists.

        This operation can create, delete, update, and/or reorder whitelists depending on the structure of the request body.

        Whitelists can be updated by changing the properties of the whitelist object with the rule's key specified in the `key` field. Whitelists can be reordered by changing the order of the whitelists in the list of objects when updating.

        Whitelists can be created by adding a new whitelist object to the list without a `key` property specified. A `key` will be generated for the new whitelist upon update.

        Whitelists can be deleted by removing the existing whitelist object from the list. Any existing whitelists that are not specified with a `key` in the list of access rules will be deleted upon update.

        Specified by:
        updateWhitelists in interface Waas
        Parameters:
        request - The request object containing the details to send
        Returns:
        A response object containing details about the completed operation
      • getWaiters

        public WaasWaiters getWaiters()
        Description copied from interface: Waas
        Gets the pre-configured waiters available for resources for this service.
        Specified by:
        getWaiters in interface Waas
        Returns:
        The service waiters.
      • getPaginators

        public WaasPaginators getPaginators()
        Description copied from interface: Waas
        Gets the pre-configured paginators available for list operations in this service which may return multiple pages of data.

        These paginators provide an Iterable interface so that service responses, or resources/records, can be iterated through without having to manually deal with pagination and page tokens.

        Specified by:
        getPaginators in interface Waas
        Returns:
        The service paginators.
      • useRealmSpecificEndpointTemplate

        public void useRealmSpecificEndpointTemplate​(boolean useOfRealmSpecificEndpointTemplateEnabled)
        This method should be used to enable or disable the use of realm-specific endpoint template.

        The default value is null. To enable the use of endpoint template defined for the realm in use, set the flag to true To disable the use of endpoint template defined for the realm in use, set the flag to false

        Parameters:
        useOfRealmSpecificEndpointTemplateEnabled - This flag can be set to true or false to enable or disable the use of realm-specific endpoint template respectively
      • populateServiceParametersInEndpoint

        public final void populateServiceParametersInEndpoint​(String endpoint,
                                                              Map<String,​Object> requiredParametersMap)
        Populate the parameters in the endpoint with its corresponding value and update the base endpoint.

        The value will be populated iff the parameter in endpoint is a required request path parameter or a required request query parameter. If not, the parameter in the endpoint will be ignored and left blank.

        Parameters:
        endpoint - The endpoint template in use
        requiredParametersMap - Map of parameter name as key and value set in request path or query parameter as value
      • updateBaseEndpoint

        public final void updateBaseEndpoint​(String endpoint)
        This method should be used for parameterized endpoint templates only.

        This does not include {region} and {secondLevelDomain} parameters.

        Parameters:
        endpoint - The updated endpoint to use
      • setEndpoint

        public final void setEndpoint​(String endpoint)
      • getEndpoint

        public final String getEndpoint()
      • refreshClient

        public final void refreshClient()
        Rebuild the backing HttpClient.

        This will call ClientConfigurators again, and can be used to e.g. refresh the SSL certificate.

      • getClientCommonLibraryVersion

        public String getClientCommonLibraryVersion()
      • getMinimumClientCommonLibraryVersionFromClient

        public Optional<String> getMinimumClientCommonLibraryVersionFromClient()