openapi: 3.2.0 info: description: OCI Web Application Acceleration and Security Services title: Web Application Acceleration and Security Services Waas API version: '20181116' x-provenance: method: harvested first_party: true publisher: Oracle source: https://docs.oracle.com/en-us/iaas/api/specs/7540df5346a0179ee21443879a914e6da69c4546fb6c218100afb7e07b43c548.yaml harvested: '2026-08-04' note: Published by Oracle as the contract for the Web Application Acceleration and Security Services API OCI service and stored verbatim; API Evangelist added only this provenance block. x-evidence: - url: https://docs.oracle.com/en-us/iaas/api/specs/index.json what: Oracle's own index of every OCI service specification - url: https://docs.oracle.com/en-us/iaas/api/specs/7540df5346a0179ee21443879a914e6da69c4546fb6c218100afb7e07b43c548.yaml what: the harvested document for Web Application Acceleration and Security Services API servers: - url: /20181116 security: - ApiKey: [] tags: - name: waas paths: /addressLists: get: description: Gets a list of address lists that can be used in a WAAS policy. operationId: ListAddressLists parameters: - $ref: '#/components/parameters/RequestIdHeaderParam' - $ref: '#/components/parameters/LimitQueryParam' - $ref: '#/components/parameters/PageQueryParam' - $ref: '#/components/parameters/AddressListSortByQueryParam' - $ref: '#/components/parameters/SortOrderQueryParam' - $ref: '#/components/parameters/CompartmentIdQueryParam' - $ref: '#/components/parameters/AddressListIdFilterParam' - $ref: '#/components/parameters/AddressListNameFilterParam' - $ref: '#/components/parameters/AddressListLifecycleStateFilterParam' - $ref: '#/components/parameters/AddressListTimeCreatedGreaterThanOrEqualToFilterParam' - $ref: '#/components/parameters/AddressListTimeCreatedLessThanFilterParam' responses: 200: description: The list of address lists. headers: opc-next-page: description: For list pagination. When this header appears in the response, additional pages of results may remain. For important details about how pagination works, see [List Pagination](/iaas/Content/API/Concepts/usingapi.htm#nine). schema: type: string opc-request-id: description: A unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. schema: type: string content: application/json: schema: items: $ref: '#/components/schemas/AddressListSummary' type: array 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/NotAuthenticated' 404: $ref: '#/components/responses/NotAuthorizedOrNotFound' 429: $ref: '#/components/responses/TooManyRequests' default: $ref: '#/components/responses/Error' summary: Returns a list of address lists. tags: - waas x-obmcs-client-retries-enabled: true x-related-resource: '#/definitions/AddressList' post: description: 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. operationId: CreateAddressList parameters: - $ref: '#/components/parameters/RequestIdHeaderParam' - $ref: '#/components/parameters/RetryTokenHeaderParam' responses: 200: description: The details of the address list. headers: etag: description: For optimistic concurrency control. See `if-match`. schema: type: string opc-request-id: description: A unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. schema: type: string content: application/json: schema: $ref: '#/components/schemas/AddressList' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/NotAuthenticated' 409: $ref: '#/components/responses/NotAuthorizedOrResourceAlreadyExists' 429: $ref: '#/components/responses/TooManyRequests' default: $ref: '#/components/responses/Error' summary: Creates an address list. tags: - waas x-example: "POST /20181116/addressLists HTTP/1.1\nHost: waas.us-phoenix-1.oci.oraclecloud.com\n<authorization and other headers>\n{\n \"compartmentId\" :\"ocid1.compartment.oc1..\",\n \"displayName\": \"addresslist\",\n \"addresses\": [\"192.0.2.0\"]\n}\n" requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateAddressListDetails' description: The details of the address list resource to create. required: true /addressLists/{addressListId}: delete: description: Deletes the address list from the compartment if it is not used. operationId: DeleteAddressList parameters: - $ref: '#/components/parameters/RequestIdHeaderParam' - $ref: '#/components/parameters/AddressListIdParam' - $ref: '#/components/parameters/RetryTokenHeaderParam' - $ref: '#/components/parameters/IfMatchHeader' responses: 204: description: The address list has been marked for deletion. headers: opc-request-id: description: A unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. schema: type: string 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/NotAuthenticated' 404: $ref: '#/components/responses/NotAuthorizedOrNotFound' 409: $ref: '#/components/responses/IncorrectState' 412: $ref: '#/components/responses/NoEtagMatch' 429: $ref: '#/components/responses/TooManyRequests' default: $ref: '#/components/responses/Error' summary: Deletes an address list. tags: - waas x-example: 'DELETE /20181116/addressLists/ocid1.waasaddresslist.oc1.. HTTP/1.1 Host: waas.us-phoenix-1.oci.oraclecloud.com <authorization and other headers> ' x-related-resource: '#/definitions/AddressList' get: description: Gets the details of an address list. operationId: GetAddressList parameters: - $ref: '#/components/parameters/RequestIdHeaderParam' - $ref: '#/components/parameters/AddressListIdParam' responses: 200: description: The details of the address list. headers: etag: description: For optimistic concurrency control. See `if-match`. schema: type: string opc-request-id: description: A unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. schema: type: string content: application/json: schema: $ref: '#/components/schemas/AddressList' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/NotAuthenticated' 404: $ref: '#/components/responses/NotAuthorizedOrNotFound' 429: $ref: '#/components/responses/TooManyRequests' default: $ref: '#/components/responses/Error' summary: Returns the details of an address list. tags: - waas x-example: 'GET /20181116/addressLists/ocid1.waasaddresslist.oc1.. HTTP/1.1 Host: waas.us-phoenix-1.oci.oraclecloud.com <authorization and other headers> ' x-obmcs-client-retries-enabled: true put: description: Updates the details of an address list. Only the fields specified in the request body will be updated; all other properties will remain unchanged. operationId: UpdateAddressList parameters: - $ref: '#/components/parameters/RequestIdHeaderParam' - $ref: '#/components/parameters/AddressListIdParam' - $ref: '#/components/parameters/IfMatchHeader' responses: 200: description: The details of the address list. headers: etag: description: For optimistic concurrency control. See `if-match`. schema: type: string opc-request-id: description: A unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. schema: type: string content: application/json: schema: $ref: '#/components/schemas/AddressList' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/NotAuthenticated' 404: $ref: '#/components/responses/NotAuthorizedOrNotFound' 409: $ref: '#/components/responses/NotAuthorizedOrResourceAlreadyExists' 412: $ref: '#/components/responses/NoEtagMatch' 429: $ref: '#/components/responses/TooManyRequests' default: $ref: '#/components/responses/Error' summary: Updates the name and IP values of an address list. tags: - waas x-example: "PUT /20181116/addressLists/ocid1.waasaddresslist.oc1.. HTTP/1.1\nHost: waas.us-phoenix-1.oci.oraclecloud.com\n<authorization and other headers>\n{\n \"displayName\": \"Updated details\"\n}\n" x-related-resource: '#/definitions/AddressList' requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateAddressListDetails' description: The details of the address list to update. /addressLists/{addressListId}/actions/changeCompartment: post: description: 'Moves address list into a different compartment. When provided, If-Match is checked against ETag values of the address list. For information about moving resources between compartments, see [Moving Resources to a Different Compartment](/iaas/Content/Identity/Tasks/managingcompartments.htm#moveRes). ' operationId: ChangeAddressListCompartment parameters: - $ref: '#/components/parameters/IfMatchHeader' - $ref: '#/components/parameters/RequestIdHeaderParam' - $ref: '#/components/parameters/RetryTokenHeaderParam' - $ref: '#/components/parameters/AddressListIdParam' responses: 204: $ref: '#/components/responses/NoContent' 401: $ref: '#/components/responses/NotAuthenticated' 404: $ref: '#/components/responses/NotAuthorizedOrNotFound' 409: $ref: '#/components/responses/IncorrectState' summary: Moves address list into a different compartment. tags: - waas x-example: "PUT /20181116/addressLists/ocid1.waasaddresslist.oc1.. HTTP/1.1\nHost: waas.us-phoenix-1.oci.oraclecloud.com\n<authorization and other headers>\n{\n \"compartmentId\": \"ocid1.compartment.oc1..\"\n}\n" x-related-resource: '#/definitions/AddressList' requestBody: content: application/json: schema: $ref: '#/components/schemas/ChangeAddressListCompartmentDetails' required: true /certificates: get: description: Gets a list of SSL certificates that can be used in a WAAS policy. operationId: ListCertificates parameters: - $ref: '#/components/parameters/RequestIdHeaderParam' - $ref: '#/components/parameters/LimitQueryParam' - $ref: '#/components/parameters/PageQueryParam' - $ref: '#/components/parameters/CertificateSortByQueryParam' - $ref: '#/components/parameters/SortOrderQueryParam' - $ref: '#/components/parameters/CompartmentIdQueryParam' - $ref: '#/components/parameters/CertificateIdFilterParam' - $ref: '#/components/parameters/CertificateDisplayNameFilterParam' - $ref: '#/components/parameters/CertificateLifecycleStateFilterParam' - $ref: '#/components/parameters/CertificateTimeCreatedGreaterThanOrEqualToFilterParam' - $ref: '#/components/parameters/CertificateTimeCreatedLessThanFilterParam' responses: 200: description: The list of SSL certificates. headers: opc-next-page: description: For list pagination. When this header appears in the response, additional pages of results may remain. For important details about how pagination works, see [List Pagination](/iaas/Content/API/Concepts/usingapi.htm#nine). schema: type: string opc-request-id: description: A unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. schema: type: string content: application/json: schema: items: $ref: '#/components/schemas/CertificateSummary' type: array 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/NotAuthenticated' 404: $ref: '#/components/responses/NotAuthorizedOrNotFound' 429: $ref: '#/components/responses/TooManyRequests' default: $ref: '#/components/responses/Error' summary: Returns a list of certificates. tags: - waas x-example: 'GET /20181116/certificates?compartmentId=ocid1.compartment.oc1.. HTTP/1.1 Host: waas.us-phoenix-1.oci.oraclecloud.com <authorization and other headers> ' x-obmcs-client-retries-enabled: true post: description: '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](/iaas/Content/WAF/Tasks/wafsettings.htm).' operationId: CreateCertificate parameters: - $ref: '#/components/parameters/RequestIdHeaderParam' - $ref: '#/components/parameters/RetryTokenHeaderParam' responses: 200: description: The details of the SSL certificate. headers: etag: description: For optimistic concurrency control. See `if-match`. schema: type: string opc-request-id: description: A unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. schema: type: string content: application/json: schema: $ref: '#/components/schemas/Certificate' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/NotAuthenticated' 409: $ref: '#/components/responses/NotAuthorizedOrResourceAlreadyExists' 429: $ref: '#/components/responses/TooManyRequests' default: $ref: '#/components/responses/Error' summary: Creates a certificate resource for the uploaded X.509 certificate. tags: - waas x-example: "POST /20181116/certificates HTTP/1.1\nHost: waas.us-phoenix-1.oci.oraclecloud.com\n<authorization and other headers>\n[\n {\n \"compartmentId\": \"ocid1.compartment.oc1..\",\n \"certificateData\": \"-----BEGIN CERTIFICATE-----\n<Base64_encoded_certificate>\n-----END CERTIFICATE-----\",\n \"privateKeyData\": \"-----BEGIN PRIVATE KEY-----\n<Base64_encoded_certificate>\n-----END PRIVATE KEY-----\"\n }\n]\n" requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateCertificateDetails' description: The details of the SSL certificate resource to create. required: true /certificates/{certificateId}: delete: description: Deletes an SSL certificate from the WAAS service. operationId: DeleteCertificate parameters: - $ref: '#/components/parameters/RequestIdHeaderParam' - $ref: '#/components/parameters/CertificateIdParam' - $ref: '#/components/parameters/RetryTokenHeaderParam' - $ref: '#/components/parameters/IfMatchHeader' responses: 204: description: The certificate has been marked for deletion. headers: opc-request-id: description: A unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. schema: type: string 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/NotAuthenticated' 404: $ref: '#/components/responses/NotAuthorizedOrNotFound' 409: $ref: '#/components/responses/IncorrectState' 412: $ref: '#/components/responses/NoEtagMatch' 429: $ref: '#/components/responses/TooManyRequests' default: $ref: '#/components/responses/Error' summary: Deletes a certificate. tags: - waas x-example: 'DELETE /20181116/certificates/ocid1.waascertificate.oc1.. HTTP/1.1 Host: waas.us-phoenix-1.oci.oraclecloud.com <authorization and other headers> ' x-related-resource: '#/definitions/Certificate' get: description: Gets the details of an SSL certificate. operationId: GetCertificate parameters: - $ref: '#/components/parameters/RequestIdHeaderParam' - $ref: '#/components/parameters/CertificateIdParam' responses: 200: description: The details of the certificate. headers: etag: description: For optimistic concurrency control. See `if-match`. schema: type: string opc-request-id: description: A unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. schema: type: string content: application/json: schema: $ref: '#/components/schemas/Certificate' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/NotAuthenticated' 404: $ref: '#/components/responses/NotAuthorizedOrNotFound' 429: $ref: '#/components/responses/TooManyRequests' default: $ref: '#/components/responses/Error' summary: Returns the details of a certificate. tags: - waas x-example: 'GET /20181116/certificates/ocid1.waascertificate.oc1.. HTTP/1.1 Host: waas.us-phoenix-1.oci.oraclecloud.com <authorization and other headers> ' x-obmcs-client-retries-enabled: true put: description: 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. operationId: UpdateCertificate parameters: - $ref: '#/components/parameters/RequestIdHeaderParam' - $ref: '#/components/parameters/CertificateIdParam' - $ref: '#/components/parameters/IfMatchHeader' responses: 200: description: The details of the SSL certificate. headers: etag: description: For optimistic concurrency control. See `if-match`. schema: type: string opc-request-id: description: A unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. schema: type: string content: application/json: schema: $ref: '#/components/schemas/Certificate' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/NotAuthenticated' 404: $ref: '#/components/responses/NotAuthorizedOrNotFound' 409: $ref: '#/components/responses/NotAuthorizedOrResourceAlreadyExists' 412: $ref: '#/components/responses/NoEtagMatch' 429: $ref: '#/components/responses/TooManyRequests' default: $ref: '#/components/responses/Error' summary: Updates the display name, freeform tags, and defined tags of a certificate. tags: - waas x-example: "PUT /20181116/certificates/ocid1.waascertificate.oc1.. HTTP/1.1\nHost: waas.us-phoenix-1.oci.oraclecloud.com\n<authorization and other headers>\n{\n \"compartmentId\": \"ocid1.compartment.oc1..\",\n \"displayName\": \"example.com Certificate\",\n \"extensions\": null,\n \"id\": \"ocid1.waascertificate.oc1..\",\n \"issuedBy\": \"John\",\n \"issuerName\": {\n \"commonName\": \"example.com\",\n \"country\": \"IE\",\n \"emailAddress\": \"user@example.com\",\n \"locality\": \"DUBLIN\",\n \"organization\": \"Organization Name\",\n \"stateProvince\": \"IRELAND\"\n },\n \"lifecycleState\": \"ACTIVE\",\n \"publicKeyInfo\": {\n \"algorithm\": \"RSA\",\n \"exponent\": 65537,\n \"keySize\": 1024\n },\n \"serialNumber\": \"11200026536082869084\",\n \"signatureAlgorithm\": \"\",\n \"subjectName\": {\n \"commonName\": \"www.example.com\",\n \"country\": \"IE\",\n \"emailAddress\": \"user@example.com\",\n \"locality\": \"DUBLIN\",\n \"organization\": \"Organization Name\",\n \"stateProvince\": \"IRELAND\"\n },\n \"timeCreated\": \"2019-08-21T12:36:00.415Z\",\n \"timeNotValidAfter\": \"2020-08-20T10:26:30.000Z\",\n \"timeNotValidBefore\": \"2019-08-21T10:26:30.000Z\",\n \"version\": 0\n}\n" x-related-resource: '#/definitions/Certificate' requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateCertificateDetails' description: The new display name, freeform tags, and defined tags to apply to a certificate. /certificates/{certificateId}/actions/changeCompartment: post: description: 'Moves certificate into a different compartment. When provided, If-Match is checked against ETag values of the certificate. For information about moving resources between compartments, see [Moving Resources to a Different Compartment](/iaas/Content/Identity/Tasks/managingcompartments.htm#moveRes). ' operationId: ChangeCertificateCompartment parameters: - $ref: '#/components/parameters/IfMatchHeader' - $ref: '#/components/parameters/RequestIdHeaderParam' - $ref: '#/components/parameters/RetryTokenHeaderParam' - $ref: '#/components/parameters/CertificateIdParam' responses: 204: $ref: '#/components/responses/NoContent' 401: $ref: '#/components/responses/NotAuthenticated' 404: $ref: '#/components/responses/NotAuthorizedOrNotFound' 409: $ref: '#/components/responses/IncorrectState' summary: Moves certificate into a different compartment. tags: - waas x-example: "POST /20181116/certificates/ocid1.waascertificate.oc1../actions/changeCompartment?compartmentId=ocid1.tenancy.oc1.. HTTP/1.1\nHost: waas.us-phoenix-1.oci.oraclecloud.com\n<authorization and other headers>\n{\n \"compartmentId\": \"ocid1.compartment.oc1..\"\n}\n" x-related-resource: '#/definitions/Certificate' requestBody: content: application/json: schema: $ref: '#/components/schemas/ChangeCertificateCompartmentDetails' required: true /customProtectionRules: get: description: Gets a list of custom protection rules for the specified Web Application Firewall. operationId: ListCustomProtectionRules parameters: - $ref: '#/components/parameters/RequestIdHeaderParam' - $ref: '#/components/parameters/CompartmentIdQueryParam' - $ref: '#/components/parameters/LimitQueryParam' - $ref: '#/components/parameters/PageQueryParam' - $ref: '#/components/parameters/CustomProtectionRuleSortByQueryParam' - $ref: '#/components/parameters/SortOrderQueryParam' - $ref: '#/components/parameters/CustomProtectionRuleIdFilterParam' - $ref: '#/components/parameters/CustomProtectionRuleDisplayNameFilterParam' - $ref: '#/components/parameters/CustomProtectionRuleLifecycleStateFilterParam' - $ref: '#/components/parameters/CustomProtectionRuleTimeCreatedGreaterThanOrEqualToFilterParam' - $ref: '#/components/parameters/CustomProtectionRuleTimeCreatedLessThanFilterParam' responses: 200: description: The list of Custom Protection rules. headers: opc-next-page: description: For list pagination. When this header appears in the response, additional pages of results may remain. For important details about how pagination works, see [List Pagination](/iaas/Content/API/Concepts/usingapi.htm#nine). schema: type: string opc-request-id: description: A unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. schema: type: string content: application/json: schema: items: $ref: '#/components/schemas/CustomProtectionRuleSummary' type: array 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/NotAuthenticated' 404: $ref: '#/components/responses/NotAuthorizedOrNotFound' 429: $ref: '#/components/responses/TooManyRequests' default: $ref: '#/components/responses/Error' summary: Returns the list of Custom Protection rules for the given compartment. tags: - waas x-obmcs-client-retries-enabled: true x-related-resource: '#/definitions/CustomProtectionRule' post: description: '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](/iaas/Content/WAF/Tasks/customprotectionrules.htm).' operationId: CreateCustomProtectionRule parameters: - $ref: '#/components/parameters/RequestIdHeaderParam' - $ref: '#/components/parameters/RetryTokenHeaderParam' responses: 200: description: The details of the custom protection rule. headers: etag: description: For optimistic concurrency control. See `if-match`. schema: type: string opc-request-id: description: A unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. schema: type: string content: application/json: schema: $ref: '#/components/schemas/CustomProtectionRule' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/NotAuthenticated' 409: $ref: '#/components/responses/NotAuthorizedOrResourceAlreadyExists' 429: $ref: '#/components/responses/TooManyRequests' default: $ref: '#/components/responses/Error' summary: Creates a new custom protection rule in the specified compartment. tags: - waas x-related-resource: '#/definitions/CustomProtectionRule' requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateCustomProtectionRuleDetails' description: The details of the custom protection rule. required: true /customProtectionRules/{customProtectionRuleId}: delete: description: Deletes a Custom Protection rule. operationId: DeleteCustomProtectionRule parameters: - $ref: '#/components/parameters/RequestIdHeaderParam' - $ref: '#/components/parameters/RetryTokenHeaderParam' - $ref: '#/components/parameters/CustomProtectionRuleIdParam' - $ref: '#/components/parameters/IfMatchHeader' responses: 204: description: The custom protection rule has been marked for deletion. headers: opc-request-id: description: A unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. schema: type: string 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/NotAuthenticated' 404: $ref: '#/components/responses/NotAuthorizedOrNotFound' 409: $ref: '#/components/responses/IncorrectState' 412: $ref: '#/components/responses/NoEtagMatch' 429: $ref: '#/components/responses/TooManyRequests' default: $ref: '#/components/responses/Error' summary: Deletes a Custom Protection rule. tags: - waas x-related-resource: '#/definitions/CustomProtectionRule' get: description: Gets the details of a custom protection rule. operationId: GetCustomProtectionRule parameters: - $ref: '#/components/parameters/RequestIdHeaderParam' - $ref: '#/components/parameters/CustomProtectionRuleIdParam' responses: 200: description: The details of the custom protection rule. headers: etag: description: For optimistic concurrency control. See `if-match`. schema: type: string opc-request-id: description: A unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. schema: type: string content: application/json: schema: $ref: '#/components/schemas/CustomProtectionRule' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/NotAuthenticated' 404: $ref: '#/components/responses/NotAuthorizedOrNotFound' 429: $ref: '#/components/responses/TooManyRequests' default: $ref: '#/components/responses/Error' summary: Returns the details of a Custom Protection rule. tags: - waas x-obmcs-client-retries-enabled: true put: description: 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. operationId: UpdateCustomProtectionRule parameters: - $ref: '#/components/parameters/RequestIdHeaderParam' - $ref: '#/components/parameters/RetryTokenHeaderParam' - $ref: '#/components/parameters/CustomProtectionRuleIdParam' - $ref: '#/components/parameters/IfMatchHeader' responses: 200: description: The details of the custom protection rule. headers: etag: description: For optimistic concurrency control. See `if-match`. schema: type: string opc-request-id: description: A unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. schema: type: string content: application/json: schema: $ref: '#/components/schemas/CustomProtectionRule' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/NotAuthenticated' 404: $ref: '#/components/responses/NotAuthorizedOrNotFound' 409: $ref: '#/components/responses/IncorrectState' 412: $ref: '#/components/responses/NoEtagMatch' 429: $ref: '#/components/responses/TooManyRequests' default: $ref: '#/components/responses/Error' summary: Updates the details of a custom protection rule. tags: - waas x-related-resource: '#/definitions/CustomProtectionRule' requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateCustomProtectionRuleDetails' description: The details of the custom protection rule to update. required: true /customProtectionRules/{customProtectionRuleId}/actions/changeCompartment: post: description: Moves a custom protection rule into a different compartment within the same tenancy. When provided, If-Match is checked against ETag values of the custom protection rule. For information about moving resources between compartments, see [Moving Resources to a Different Compartment](/iaas/Content/Identity/Tasks/managingcompartments.htm#moveRes). operationId: ChangeCustomProtectionRuleCompartment parameters: - $ref: '#/components/parameters/IfMatchHeader' - $ref: '#/components/parameters/RequestIdHeaderParam' - $ref: '#/components/parameters/RetryTokenHeaderParam' - $ref: '#/components/parameters/CustomProtectionRuleIdParam' responses: 204: $ref: '#/components/responses/NoContent' 401: $ref: '#/components/responses/NotAuthenticated' 404: $ref: '#/components/responses/NotAuthorizedOrNotFound' 409: $ref: '#/components/responses/IncorrectState' summary: Moves Custom Protection rule into a different compartment. tags: - waas x-related-resource: '#/definitions/CustomProtectionRule' requestBody: content: application/json: schema: $ref: '#/components/schemas/ChangeCustomProtectionRuleCompartmentDetails' required: true /edgeSubnets: get: description: 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. operationId: ListEdgeSubnets parameters: - $ref: '#/components/parameters/RequestIdHeaderParam' - $ref: '#/components/parameters/LimitQueryParam' - $ref: '#/components/parameters/PageQueryParam' - $ref: '#/components/parameters/EdgeSubnetSortByQueryParam' - $ref: '#/components/parameters/SortOrderQueryParam' responses: 200: description: The list of edge node IP Address CIDRs. headers: opc-next-page: description: For pagination of a list of items. When paging through a list, if this header appears in the response, then a partial list might have been returned. Include this value as the `page` parameter for the subsequent `GET` request to get the next batch of items. schema: type: string opc-request-id: description: A unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. schema: type: string content: application/json: schema: items: $ref: '#/components/schemas/EdgeSubnet' type: array 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/NotAuthenticated' 404: $ref: '#/components/responses/NotAuthorizedOrNotFound' 429: $ref: '#/components/responses/TooManyRequests' default: $ref: '#/components/responses/Error' summary: Returns a list of subnets corresponding the Web Application Firewall. tags: - waas x-example: 'GET /20181116/edgeSubnets HTTP/1.1 Host: waas.us-phoenix-1.oci.oraclecloud.com <authorization and other headers> ' x-obmcs-client-retries-enabled: true /waasPolicies: get: description: Gets a list of WAAS policies. operationId: ListWaasPolicies parameters: - $ref: '#/components/parameters/RequestIdHeaderParam' - $ref: '#/components/parameters/CompartmentIdQueryParam' - $ref: '#/components/parameters/LimitQueryParam' - $ref: '#/components/parameters/PageQueryParam' - $ref: '#/components/parameters/WaasPolicySortByQueryParam' - $ref: '#/components/parameters/SortOrderQueryParam' - $ref: '#/components/parameters/WaasPolicyIdFilterParam' - $ref: '#/components/parameters/WaasPolicyDisplayNameFilterParam' - $ref: '#/components/parameters/WaasPolicyLifecycleStateFilterParam' - $ref: '#/components/parameters/WaasPolicyTimeCreatedGreaterThanOrEqualToFilterParam' - $ref: '#/components/parameters/WaasPolicyTimeCreatedLessThanFilterParam' responses: 200: description: The list of WAAS policies. headers: opc-next-page: description: For list pagination. When this header appears in the response, additional pages of results may remain. For important details about how pagination works, see [List Pagination](/iaas/Content/API/Concepts/usingapi.htm#nine). schema: type: string opc-request-id: description: A unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. schema: type: string content: application/json: schema: items: $ref: '#/components/schemas/WaasPolicySummary' type: array 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/NotAuthenticated' 404: $ref: '#/components/responses/NotAuthorizedOrNotFound' 429: $ref: '#/components/responses/TooManyRequests' default: $ref: '#/components/responses/Error' summary: Returns the list of policies for the given compartment. tags: - waas x-example: 'GET /20181116/waasPolicies?compartmentId=ocid1.compartment.oc1.. HTTP/1.1 Host: waas.us-phoenix-1.oci.oraclecloud.com <authorization and other headers> ' x-obmcs-client-retries-enabled: true x-related-resource: '#/definitions/WaasPolicy' post: description: '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](/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](/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.' operationId: CreateWaasPolicy parameters: - $ref: '#/components/parameters/RequestIdHeaderParam' - $ref: '#/components/parameters/RetryTokenHeaderParam' responses: 202: $ref: '#/components/responses/RequestAcceptedForProcessingWithEtag' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/NotAuthenticated' 409: $ref: '#/components/responses/NotAuthorizedOrResourceAlreadyExists' 429: $ref: '#/components/responses/TooManyRequests' default: $ref: '#/components/responses/Error' summary: Creates a new policy in the specified compartment. tags: - waas x-example: "POST /20181116/waasPolicies HTTP/1.1\nHost: waas.us-phoenix-1.oci.oraclecloud.com\n<authorization and other headers>\n{\n \"compartmentId\": \"ocid1.compartment.oc1..\",\n \"displayName\": \"Policy\",\n \"domain\": \"example.com\"\n}\n" x-related-resource: '#/definitions/WaasPolicy' requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateWaasPolicyDetails' description: The details of the WAAS policy. required: true /waasPolicies/{waasPolicyId}: delete: description: Deletes a policy. operationId: DeleteWaasPolicy parameters: - $ref: '#/components/parameters/RequestIdHeaderParam' - $ref: '#/components/parameters/RetryTokenHeaderParam' - $ref: '#/components/parameters/WaasPolicyIdParam' - $ref: '#/components/parameters/IfMatchHeader' responses: 202: $ref: '#/components/responses/RequestAcceptedForProcessing' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/NotAuthenticated' 404: $ref: '#/components/responses/NotAuthorizedOrNotFound' 409: $ref: '#/components/responses/IncorrectState' 412: $ref: '#/components/responses/NoEtagMatch' 429: $ref: '#/components/responses/TooManyRequests' default: $ref: '#/components/responses/Error' summary: Deletes a policy. tags: - waas x-example: 'DELETE /20181116/waasPolicies/ocid1.waaspolicy.oc1.. HTTP/1.1 Host: waas.us-phoenix-1.oci.oraclecloud.com <authorization and other headers> ' x-related-resource: '#/definitions/WaasPolicy' get: description: Gets the details of a WAAS policy. operationId: GetWaasPolicy parameters: - $ref: '#/components/parameters/RequestIdHeaderParam' - $ref: '#/components/parameters/WaasPolicyIdParam' responses: 200: description: The details of the WAAS policy. headers: etag: description: For optimistic concurrency control. See `if-match`. schema: type: string opc-request-id: description: A unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. schema: type: string content: application/json: schema: $ref: '#/components/schemas/WaasPolicy' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/NotAuthenticated' 404: $ref: '#/components/responses/NotAuthorizedOrNotFound' 429: $ref: '#/components/responses/TooManyRequests' default: $ref: '#/components/responses/Error' summary: Returns the details of a policy. tags: - waas x-example: 'GET /20181116/waasPolicies/ocid1.waaspolicy.oc1.. HTTP/1.1 Host: waas.us-phoenix-1.oci.oraclecloud.com <authorization and other headers> ' x-obmcs-client-retries-enabled: true put: description: '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.' operationId: UpdateWaasPolicy parameters: - $ref: '#/components/parameters/RequestIdHeaderParam' - $ref: '#/components/parameters/RetryTokenHeaderParam' - $ref: '#/components/parameters/WaasPolicyIdParam' - $ref: '#/components/parameters/IfMatchHeader' responses: 202: $ref: '#/components/responses/RequestAcceptedForProcessing' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/NotAuthenticated' 404: $ref: '#/components/responses/NotAuthorizedOrNotFound' 409: $ref: '#/components/responses/IncorrectState' 412: $ref: '#/components/responses/NoEtagMatch' 429: $ref: '#/components/responses/TooManyRequests' default: $ref: '#/components/responses/Error' summary: Updates the details of a policy. tags: - waas x-example: "PUT /20181116/waasPolicies/ocid1.waaspolicy.oc1.. HTTP/1.1\nHost: waas.us-phoenix-1.oci.oraclecloud.com\n<authorization and other headers>\n{\n \"displayName\": \"change_policy\"\n}\n" x-related-resource: '#/definitions/WaasPolicy' requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateWaasPolicyDetails' description: The details of the WAAS policy to update. required: true /waasPolicies/{waasPolicyId}/actions/acceptWafConfigRecommendations: post: description: '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](/iaas/Content/WAF/Tasks/wafprotectionrules.htm).' operationId: AcceptRecommendations parameters: - $ref: '#/components/parameters/RequestIdHeaderParam' - $ref: '#/components/parameters/WaasPolicyIdParam' - $ref: '#/components/parameters/IfMatchHeader' responses: 202: $ref: '#/components/responses/RequestAcceptedForProcessing' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/NotAuthenticated' 404: $ref: '#/components/responses/NotAuthorizedOrNotFound' 409: $ref: '#/components/responses/IncorrectState' 429: $ref: '#/components/responses/TooManyRequests' default: $ref: '#/components/responses/Error' summary: Accepts a list of recommended Web Application Firewall protection rules. tags: - waas x-example: 'POST /20181116/waasPolicies/ocid1.waaspolicy.oc1../actions/acceptWafConfigRecommendations HTTP/1.1 Host: waas.us-phoenix-1.oci.oraclecloud.com <authorization and other headers> ["932171", "932170", "911100", "90004", "950103", "1000000"] ' x-related-resource: '#/definitions/Recommendation' requestBody: content: application/json: schema: description: The list of keys of protection rules to accept. items: type: string type: array required: true /waasPolicies/{waasPolicyId}/actions/changeCompartment: post: description: 'Moves WAAS policy into a different compartment. When provided, If-Match is checked against ETag values of the WAAS policy. For information about moving resources between compartments, see [Moving Resources to a Different Compartment](/iaas/Content/Identity/Tasks/managingcompartments.htm#moveRes). ' operationId: ChangeWaasPolicyCompartment parameters: - $ref: '#/components/parameters/IfMatchHeader' - $ref: '#/components/parameters/RequestIdHeaderParam' - $ref: '#/components/parameters/RetryTokenHeaderParam' - $ref: '#/components/parameters/WaasPolicyIdParam' responses: 204: $ref: '#/components/responses/NoContent' 401: $ref: '#/components/responses/NotAuthenticated' 404: $ref: '#/components/responses/NotAuthorizedOrNotFound' 409: $ref: '#/components/responses/IncorrectState' summary: Moves WAAS policy into a different compartment. tags: - waas x-example: "POST /20181116/waasPolicies/ocid1.waaspolicy.oc1../actions/changeCompartment HTTP/1.1\nHost: waas.us-phoenix-1.oci.oraclecloud.com\n<authorization and other headers>\n{\n \"compartmentId\": \"ocid1.compartment.oc1..\"\n}\n" x-related-resource: '#/definitions/WaasPolicy' requestBody: content: application/json: schema: $ref: '#/components/schemas/ChangeWaasPolicyCompartmentDetails' required: true /waasPolicies/{waasPolicyId}/actions/purgeCache: post: description: '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](/iaas/Content/WAF/Tasks/cachingrules.htm#purge).' operationId: PurgeCache parameters: - $ref: '#/components/parameters/RequestIdHeaderParam' - $ref: '#/components/parameters/WaasPolicyIdParam' - $ref: '#/components/parameters/IfMatchHeader' responses: 202: $ref: '#/components/responses/RequestAcceptedForProcessing' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/NotAuthenticated' 404: $ref: '#/components/responses/NotAuthorizedOrNotFound' 409: $ref: '#/components/responses/IncorrectState' 429: $ref: '#/components/responses/TooManyRequests' default: $ref: '#/components/responses/Error' summary: Accepts a list of resources to be purged. tags: - waas x-example: "POST /20181116/waasPolicies/ocid1.waaspolicy.oc1../actions/purgeCache HTTP/1.1\nHost: waas.us-phoenix-1.oci.oraclecloud.com\n<authorization and other headers>\n[\n {\n\n \"resources\": [\n\n {\n \"name\": \"cache\"\n }\n ]\n\n }\n]\n" x-related-resource: '#/definitions/PurgeCache' requestBody: content: application/json: schema: $ref: '#/components/schemas/PurgeCache' description: The list of resources to purge. /waasPolicies/{waasPolicyId}/policyConfig: get: description: Gets the configuration of a WAAS policy. operationId: GetPolicyConfig parameters: - $ref: '#/components/parameters/RequestIdHeaderParam' - $ref: '#/components/parameters/WaasPolicyIdParam' responses: 200: description: The configuration details of a WAAS policy. headers: etag: description: For optimistic concurrency control. See `if-match`. schema: type: string opc-request-id: description: A unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. schema: type: string content: application/json: schema: $ref: '#/components/schemas/PolicyConfig' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/NotAuthenticated' 404: $ref: '#/components/responses/NotAuthorizedOrNotFound' 409: $ref: '#/components/responses/IncorrectState' 429: $ref: '#/components/responses/TooManyRequests' default: $ref: '#/components/responses/Error' summary: Returns the general configuration for the policy. tags: - waas x-example: 'GET /20181116/waasPolicies/ocid1.waaspolicy.oc1../policyConfig HTTP/1.1 Host: waas.us-phoenix-1.oci.oraclecloud.com <authorization and other headers> ' x-obmcs-client-retries-enabled: true put: description: Updates the configuration for a WAAS policy. Only the fields specified in the request body will be updated; all other properties will remain unchanged. operationId: UpdatePolicyConfig parameters: - $ref: '#/components/parameters/RequestIdHeaderParam' - $ref: '#/components/parameters/RetryTokenHeaderParam' - $ref: '#/components/parameters/WaasPolicyIdParam' - $ref: '#/components/parameters/IfMatchHeader' responses: 202: $ref: '#/components/responses/RequestAcceptedForProcessing' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/NotAuthenticated' 404: $ref: '#/components/responses/NotAuthorizedOrNotFound' 409: $ref: '#/components/responses/IncorrectState' 412: $ref: '#/components/responses/NoEtagMatch' 429: $ref: '#/components/responses/TooManyRequests' default: $ref: '#/components/responses/Error' summary: Updates the policy configuration. tags: - waas x-example: "PUT /20181116/waasPolicies/ocid1.waaspolicy.oc1../policyConfig HTTP/1.1\nHost: waas.us-phoenix-1.oci.oraclecloud.com\n<authorization and other headers>\n{\n \"certificateId\": \"ocid1.waascertificate.oc1..\",\n \"isHttpsEnabled\": true,\n \"isHttpsForced\": true\n}\n" x-related-resource: '#/definitions/PolicyConfig' requestBody: content: application/json: schema: $ref: '#/components/schemas/PolicyConfig' description: The new configuration to apply to a WAAS policy. required: true /waasPolicies/{waasPolicyId}/reports/waf/blocked: get: description: 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). operationId: ListWafBlockedRequests parameters: - $ref: '#/components/parameters/RequestIdHeaderParam' - $ref: '#/components/parameters/WaasPolicyIdParam' - $ref: '#/components/parameters/FromDateObservedQueryParam' - $ref: '#/components/parameters/ToDateObservedQueryParam' - $ref: '#/components/parameters/LimitQueryParam' - $ref: '#/components/parameters/PageQueryParam' - $ref: '#/components/parameters/WafFeatureQueryParam' responses: 200: description: A time series of counts of requests blocked by the Web Application Firewall. headers: opc-next-page: description: For pagination of a list of items. When paging through a list, if this header appears in the response, then a partial list might have been returned. Include this value as the page parameter for the subsequent GET request to get the next batch of items. schema: type: string opc-request-id: description: A unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. schema: type: string content: application/json: schema: description: A time series of counts of requests blocked by a Web Application Firewall feature. items: $ref: '#/components/schemas/WafBlockedRequest' type: array 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/NotAuthenticated' 404: $ref: '#/components/responses/NotAuthorizedOrNotFound' 429: $ref: '#/components/responses/TooManyRequests' default: $ref: '#/components/responses/Error' summary: Returns a list of requests blocked by the Web Application Firewall. tags: - waas x-example: 'GET /20181116/waasPolicies/ocid1.waaspolicy.oc1../reports/waf/blocked HTTP/1.1 Host: waas.us-phoenix-1.oci.oraclecloud.com <authorization and other headers> ' x-obmcs-client-retries-enabled: true /waasPolicies/{waasPolicyId}/reports/waf/requests: get: description: '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). ' operationId: ListWafRequests parameters: - $ref: '#/components/parameters/RequestIdHeaderParam' - $ref: '#/components/parameters/WaasPolicyIdParam' - $ref: '#/components/parameters/FromDateObservedQueryParam' - $ref: '#/components/parameters/ToDateObservedQueryParam' - $ref: '#/components/parameters/LimitQueryParam' - $ref: '#/components/parameters/PageQueryParam' responses: 200: description: A time series of request counts managed by the Web Application Firewall. headers: opc-next-page: description: For pagination of a list of items. When paging through a list, if this header appears in the response, then a partial list might have been returned. Include this value as the page parameter for the subsequent GET request to get the next batch of items. schema: type: string opc-request-id: description: A unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. schema: type: string content: application/json: schema: description: A time series of request counts handled by the Web Application Firewall. items: $ref: '#/components/schemas/WafRequest' type: array 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/NotAuthenticated' 404: $ref: '#/components/responses/NotAuthorizedOrNotFound' 429: $ref: '#/components/responses/TooManyRequests' default: $ref: '#/components/responses/Error' summary: Returns a list of requests handled by the Web Application Firewall. tags: - waas x-example: 'GET /20181116/waasPolicies/ocid1.waaspolicy.oc1../reports/waf/requests HTTP/1.1 Host: waas.us-phoenix-1.oci.oraclecloud.com <authorization and other headers> ' x-obmcs-client-retries-enabled: true /waasPolicies/{waasPolicyId}/reports/waf/traffic: get: description: 'Gets the Web Application Firewall traffic data for a WAAS policy. Sorted by `timeObserved` in ascending order (starting from oldest data). ' operationId: ListWafTraffic parameters: - $ref: '#/components/parameters/RequestIdHeaderParam' - $ref: '#/components/parameters/WaasPolicyIdParam' - $ref: '#/components/parameters/FromDateObservedQueryParam' - $ref: '#/components/parameters/ToDateObservedQueryParam' - $ref: '#/components/parameters/LimitQueryParam' - $ref: '#/components/parameters/PageQueryParam' responses: 200: description: The Web Application Firewall traffic data for the WAAS policy. headers: opc-next-page: description: For pagination of a list of items. When paging through a list, if this header appears in the response, then a partial list might have been returned. Include this value as the page parameter for the subsequent GET request to get the next batch of items. schema: type: string opc-request-id: description: A unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. schema: type: string content: application/json: schema: description: A list of time-series data points for the Web Application Firewall traffic. items: $ref: '#/components/schemas/WafTrafficDatum' type: array 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/NotAuthenticated' 404: $ref: '#/components/responses/NotAuthorizedOrNotFound' 429: $ref: '#/components/responses/TooManyRequests' default: $ref: '#/components/responses/Error' summary: Returns a list of traffic data for the Web Application Firewall. tags: - waas x-example: 'GET /20181116/waasPolicies/ocid1.waaspolicy.oc1../reports/waf/traffic HTTP/1.1 Host: waas.us-phoenix-1.oci.oraclecloud.com <authorization and other headers> ' x-obmcs-client-retries-enabled: true x-related-resource: '#/definitions/WafTrafficDatum' /waasPolicies/{waasPolicyId}/wafConfig: get: description: Gets the Web Application Firewall configuration details for a WAAS policy. operationId: GetWafConfig parameters: - $ref: '#/components/parameters/RequestIdHeaderParam' - $ref: '#/components/parameters/WaasPolicyIdParam' responses: 200: description: The Web Application Firewall configuration details of a WAAS policy. headers: etag: description: For optimistic concurrency control. See `if-match`. schema: type: string opc-request-id: description: A unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. schema: type: string content: application/json: schema: $ref: '#/components/schemas/WafConfig' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/NotAuthenticated' 404: $ref: '#/components/responses/NotAuthorizedOrNotFound' 409: $ref: '#/components/responses/IncorrectState' 429: $ref: '#/components/responses/TooManyRequests' default: $ref: '#/components/responses/Error' summary: Returns the Web Application Firewall configuration. tags: - waas x-example: 'GET /20181116/waasPolicies/ocid1.waaspolicy.oc1../wafConfig HTTP/1.1 Host: waas.us-phoenix-1.oci.oraclecloud.com <authorization and other headers> ' x-obmcs-client-retries-enabled: true put: description: '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. ' operationId: UpdateWafConfig parameters: - $ref: '#/components/parameters/RequestIdHeaderParam' - $ref: '#/components/parameters/RetryTokenHeaderParam' - $ref: '#/components/parameters/WaasPolicyIdParam' - $ref: '#/components/parameters/IfMatchHeader' responses: 202: $ref: '#/components/responses/RequestAcceptedForProcessing' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/NotAuthenticated' 404: $ref: '#/components/responses/NotAuthorizedOrNotFound' 409: $ref: '#/components/responses/IncorrectState' 412: $ref: '#/components/responses/NoEtagMatch' 429: $ref: '#/components/responses/TooManyRequests' default: $ref: '#/components/responses/Error' summary: Updates the Web Application Firewall configuration. tags: - waas x-example: "PUT /20181116/waasPolicies/ocid1.waaspolicy.oc1../wafConfig HTTP/1.1\nHost: waas.us-phoenix-1.oci.oraclecloud.com\n<authorization and other headers>\n{\n \"allowedHttpMethods\": [\n \"GET\",\n \"POST\",\n \"HEAD\",\n \"OPTIONS\"\n ],\n \"blockAction\": \"SHOW_ERROR_PAGE\",\n \"blockErrorPageCode\": \"403\",\n \"blockErrorPageDescription\": \"Access blocked by website owner. Please contact support.\",\n \"blockErrorPageMessage\": \"Access to the website is blocked.\",\n \"blockResponseCode\": 403,\n \"isResponseInspected\": false,\n \"maxArgumentCount\": 255,\n \"maxNameLengthPerArgument\": 200,\n \"maxResponseSizeInKiB\": 1024,\n \"maxTotalNameLengthOfArguments\": 64000,\n \"mediaTypes\": [\n \"text/html\",\n \"text/plain\"\n ],\n \"recommendationsPeriodInDays\": 7\n}\n" x-related-resource: '#/definitions/WafConfig' requestBody: content: application/json: schema: $ref: '#/components/schemas/WafConfig' description: The new Web Application Firewall configuration to apply to a WAAS policy. required: true /waasPolicies/{waasPolicyId}/wafConfig/accessRules: get: description: '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.' operationId: ListAccessRules parameters: - $ref: '#/components/parameters/RequestIdHeaderParam' - $ref: '#/components/parameters/WaasPolicyIdParam' - $ref: '#/components/parameters/LimitQueryParam' - $ref: '#/components/parameters/PageQueryParam' responses: 200: description: The currently configured access rules. headers: etag: description: For optimistic concurrency control. See `if-match`. schema: type: string opc-next-page: description: For list pagination. When this header appears in the response, additional pages of results may remain. For important details about how pagination works, see [List Pagination](/iaas/Content/API/Concepts/usingapi.htm#nine). schema: type: string opc-request-id: description: A unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. schema: type: string content: application/json: schema: description: A list of access rules for the specified web application. items: $ref: '#/components/schemas/AccessRule' type: array 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/NotAuthenticated' 404: $ref: '#/components/responses/NotAuthorizedOrNotFound' 409: $ref: '#/components/responses/IncorrectState' 429: $ref: '#/components/responses/TooManyRequests' default: $ref: '#/components/responses/Error' summary: Returns a list of access rules for the Web Application Firewall. tags: - waas x-example: 'GET /20181116/waasPolicies/ocid1.waaspolicy.oc1../wafConfig/accessRules HTTP/1.1 Host: waas.us-phoenix-1.oci.oraclecloud.com <authorization and other headers> ' x-obmcs-client-retries-enabled: true put: description: '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.' operationId: UpdateAccessRules parameters: - $ref: '#/components/parameters/RequestIdHeaderParam' - $ref: '#/components/parameters/RetryTokenHeaderParam' - $ref: '#/components/parameters/WaasPolicyIdParam' - $ref: '#/components/parameters/IfMatchHeader' responses: 202: $ref: '#/components/responses/RequestAcceptedForProcessing' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/NotAuthenticated' 404: $ref: '#/components/responses/NotAuthorizedOrNotFound' 409: $ref: '#/components/responses/IncorrectState' 412: $ref: '#/components/responses/NoEtagMatch' 429: $ref: '#/components/responses/TooManyRequests' default: $ref: '#/components/responses/Error' summary: Updates the list of access rules for the Web Application Firewall. tags: - waas x-example: "PUT /20181116/waasPolicies/ocid1.waaspolicy.oc1../wafConfig/accessRules HTTP/1.1\nHost: waas.us-phoenix-1.oci.oraclecloud.com\n<authorization and other headers>\n[\n {\n\n \"action\": \"BLOCK\",\n \"blockAction\": \"SET_RESPONSE_CODE\",\n \"blockResponseCode\": 403,\n \"criteria\": [\n {\n \"condition\": \"COUNTRY_IS\",\n \"value\": \"AF\"\n }\n ],\n \"name\": \"access rule\"\n }\n]\n" x-related-resource: '#/definitions/AccessRule' requestBody: content: application/json: schema: description: The access rules to update. items: $ref: '#/components/schemas/AccessRule' maxItems: 100 type: array required: true /waasPolicies/{waasPolicyId}/wafConfig/addressRateLimiting: get: description: Gets the address rate limiting settings of the Web Application Firewall configuration for a WAAS policy. operationId: GetWafAddressRateLimiting parameters: - $ref: '#/components/parameters/RequestIdHeaderParam' - $ref: '#/components/parameters/WaasPolicyIdParam' responses: 200: description: The address rate limiting settings. headers: etag: description: For optimistic concurrency control. See `if-match`. schema: type: string opc-request-id: description: A unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. schema: type: string content: application/json: schema: $ref: '#/components/schemas/AddressRateLimiting' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/NotAuthenticated' 404: $ref: '#/components/responses/NotAuthorizedOrNotFound' 409: $ref: '#/components/responses/IncorrectState' 429: $ref: '#/components/responses/TooManyRequests' default: $ref: '#/components/responses/Error' summary: Returns the rate limiting settings for the Web Application Firewall. tags: - waas x-example: 'GET /20181116/waasPolicies/ocid1.waaspolicy.oc1../wafConfig/addressRateLimiting HTTP/1.1 Host: waas.us-phoenix-1.oci.oraclecloud.com <authorization and other headers> ' x-obmcs-client-retries-enabled: true put: description: 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. operationId: UpdateWafAddressRateLimiting parameters: - $ref: '#/components/parameters/RequestIdHeaderParam' - $ref: '#/components/parameters/WaasPolicyIdParam' - $ref: '#/components/parameters/RetryTokenHeaderParam' - $ref: '#/components/parameters/IfMatchHeader' responses: 202: $ref: '#/components/responses/RequestAcceptedForProcessing' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/NotAuthenticated' 404: $ref: '#/components/responses/NotAuthorizedOrNotFound' 409: $ref: '#/components/responses/IncorrectState' 412: $ref: '#/components/responses/NoEtagMatch' 429: $ref: '#/components/responses/TooManyRequests' default: $ref: '#/components/responses/Error' summary: Updates the rate limiting settings for the Web Application Firewall. tags: - waas x-example: "PUT /20181116/waasPolicies/ocid1.waaspolicy.oc1../wafConfig/addressRateLimiting HTTP/1.1\nHost: waas.us-phoenix-1.oci.oraclecloud.com\n<authorization and other headers>\n{\n \"allowedRatePerAddress\": 1,\n \"blockResponseCode\": 503,\n \"isEnabled\": true,\n \"maxDelayedCountPerAddress\": 10\n}\n" x-related-resource: '#/definitions/AddressRateLimiting' requestBody: content: application/json: schema: $ref: '#/components/schemas/AddressRateLimiting' description: The address rate limiting settings. required: true /waasPolicies/{waasPolicyId}/wafConfig/cachingRules: get: description: '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.' operationId: ListCachingRules parameters: - $ref: '#/components/parameters/RequestIdHeaderParam' - $ref: '#/components/parameters/WaasPolicyIdParam' - $ref: '#/components/parameters/LimitQueryParam' - $ref: '#/components/parameters/PageQueryParam' responses: 200: description: A list of caching rules and their details. headers: etag: description: For optimistic concurrency control. See `if-match`. schema: type: string opc-next-page: description: For list pagination. When this header appears in the response, additional pages of results may remain. For important details about how pagination works, see [List Pagination](/iaas/Content/API/Concepts/usingapi.htm#nine). schema: type: string opc-request-id: description: A unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. schema: type: string content: application/json: schema: items: $ref: '#/components/schemas/CachingRuleSummary' type: array 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/NotAuthenticated' 404: $ref: '#/components/responses/NotAuthorizedOrNotFound' 409: $ref: '#/components/responses/IncorrectState' 429: $ref: '#/components/responses/TooManyRequests' default: $ref: '#/components/responses/Error' summary: Returns the list of caching rules for the Web Application Firewall. tags: - waas x-example: 'GET /20181116/waasPolicies/ocid1.waaspolicy.oc1../wafConfig/cachingRules HTTP/1.1 Host: waas.us-phoenix-1.oci.oraclecloud.com <authorization and other headers> ' x-obmcs-client-retries-enabled: true put: description: '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](/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.' operationId: UpdateCachingRules parameters: - $ref: '#/components/parameters/RequestIdHeaderParam' - $ref: '#/components/parameters/WaasPolicyIdParam' - $ref: '#/components/parameters/RetryTokenHeaderParam' - $ref: '#/components/parameters/IfMatchHeader' responses: 202: $ref: '#/components/responses/RequestAcceptedForProcessing' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/NotAuthenticated' 404: $ref: '#/components/responses/NotAuthorizedOrNotFound' 409: $ref: '#/components/responses/IncorrectState' 412: $ref: '#/components/responses/NoEtagMatch' 429: $ref: '#/components/responses/TooManyRequests' default: $ref: '#/components/responses/Error' summary: Updates the list of caching rules for the Web Application Firewall. tags: - waas x-example: "PUT /20181116/waasPolicies/ocid1.waaspolicy.oc1../wafConfig/cachingRules HTTP/1.1\nHost: waas.us-phoenix-1.oci.oraclecloud.com\n<authorization and other headers>\n[\n\t{\n \"name\": \"cache\",\n \"action\": \"BYPASS_CACHE\",\n\n \"criteria\":[\n {\n \"condition\": \"URL_IS\",\n \"value\": \"/path/to-cache\"\n }\n ]\n\n}\n]\n" x-related-resource: '#/definitions/CachingRule' requestBody: content: application/json: schema: description: A list of caching rules to be updated. items: $ref: '#/components/schemas/CachingRule' type: array required: true /waasPolicies/{waasPolicyId}/wafConfig/captchas: get: description: '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. ' operationId: ListCaptchas parameters: - $ref: '#/components/parameters/RequestIdHeaderParam' - $ref: '#/components/parameters/WaasPolicyIdParam' - $ref: '#/components/parameters/LimitQueryParam' - $ref: '#/components/parameters/PageQueryParam' responses: 200: description: The list of currently configured CAPTCHA challenges and their settings. headers: etag: description: For optimistic concurrency control. See `if-match`. schema: type: string opc-next-page: description: For list pagination. When this header appears in the response, additional pages of results may remain. For important details about how pagination works, see [List Pagination](/iaas/Content/API/Concepts/usingapi.htm#nine). schema: type: string opc-request-id: description: A unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. schema: type: string content: application/json: schema: description: A list of CAPTCHAs. items: $ref: '#/components/schemas/Captcha' type: array 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/NotAuthenticated' 404: $ref: '#/components/responses/NotAuthorizedOrNotFound' 409: $ref: '#/components/responses/IncorrectState' 429: $ref: '#/components/responses/TooManyRequests' default: $ref: '#/components/responses/Error' summary: Returns a list of CAPTCHA configurations for the Web Application Firewall. tags: - waas x-example: 'GET /20181116/waasPolicies/ocid1.waaspolicy.oc1../wafConfig/captchas HTTP/1.1 Host: waas.us-phoenix-1.oci.oraclecloud.com <authorization and other headers> ' x-obmcs-client-retries-enabled: true put: description: '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.' operationId: UpdateCaptchas parameters: - $ref: '#/components/parameters/RequestIdHeaderParam' - $ref: '#/components/parameters/RetryTokenHeaderParam' - $ref: '#/components/parameters/WaasPolicyIdParam' - $ref: '#/components/parameters/IfMatchHeader' responses: 202: $ref: '#/components/responses/RequestAcceptedForProcessing' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/NotAuthenticated' 404: $ref: '#/components/responses/NotAuthorizedOrNotFound' 409: $ref: '#/components/responses/IncorrectState' 412: $ref: '#/components/responses/NoEtagMatch' 429: $ref: '#/components/responses/TooManyRequests' default: $ref: '#/components/responses/Error' summary: Updates the list of CAPTCHA configurations for the Web Application Firewall. tags: - waas x-example: "PUT /20181116/waasPolicies/ocid1.waaspolicy.oc1../wafConfig/captchas HTTP/1.1\nHost: waas.us-phoenix-1.oci.oraclecloud.com\n<authorization and other headers>\n[\n {\n \"failureMessage\": \"The CAPTCHA was incorrect. Try again.\",\n \"footerText\": \"Enter the letters and numbers as they are shown in the image above.\",\n \"headerText\": \"We have detected an increased number of attempts to access this website. To help us keep this site secure, please let us know that you are not a robot by entering the text from the image below.\",\n \"sessionExpirationInSeconds\": 200,\n \"submitLabel\": \"Yes, I am human\",\n \"title\": \"Are you human?\",\n \"url\": \"/\"\n }\n]\n" x-related-resource: '#/definitions/Captcha' requestBody: content: application/json: schema: description: A list of CAPTCHA challenges to be updated. items: $ref: '#/components/schemas/Captcha' type: array description: A list of CAPTCHA details. required: true /waasPolicies/{waasPolicyId}/wafConfig/customProtectionRules: get: description: Gets the list of currently configured custom protection rules for a WAAS policy. operationId: ListWaasPolicyCustomProtectionRules parameters: - $ref: '#/components/parameters/RequestIdHeaderParam' - $ref: '#/components/parameters/WaasPolicyIdParam' - $ref: '#/components/parameters/LimitQueryParam' - $ref: '#/components/parameters/PageQueryParam' - $ref: '#/components/parameters/CustomProtectionModSecurityRuleIdFilterParam' - $ref: '#/components/parameters/CustomProtectionRuleActionFilterParam' responses: 200: description: A list of custom protection rules and their details. headers: etag: description: For optimistic concurrency control. See `if-match`. schema: type: string opc-next-page: description: For list pagination. When this header appears in the response, additional pages of results may remain. For important details about how pagination works, see [List Pagination](/iaas/Content/API/Concepts/usingapi.htm#nine). schema: type: string opc-request-id: description: A unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. schema: type: string content: application/json: schema: items: $ref: '#/components/schemas/WaasPolicyCustomProtectionRuleSummary' type: array 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/NotAuthenticated' 404: $ref: '#/components/responses/NotAuthorizedOrNotFound' 409: $ref: '#/components/responses/IncorrectState' 429: $ref: '#/components/responses/TooManyRequests' default: $ref: '#/components/responses/Error' summary: Returns the list of custom protection rules for the Web Application Firewall. tags: - waas x-obmcs-client-retries-enabled: true x-related-resource: '#/definitions/CustomProtectionRule' put: description: Updates the action for each specified custom protection rule. Only the `DETECT` and `BLOCK` actions can be set. Disabled rules should not be included in the list. For more information on protection rules, see [WAF Protection Rules](/iaas/Content/WAF/Tasks/wafprotectionrules.htm). operationId: UpdateWaasPolicyCustomProtectionRules parameters: - $ref: '#/components/parameters/RequestIdHeaderParam' - $ref: '#/components/parameters/WaasPolicyIdParam' - $ref: '#/components/parameters/RetryTokenHeaderParam' - $ref: '#/components/parameters/IfMatchHeader' responses: 202: $ref: '#/components/responses/RequestAcceptedForProcessing' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/NotAuthenticated' 404: $ref: '#/components/responses/NotAuthorizedOrNotFound' 409: $ref: '#/components/responses/IncorrectState' 412: $ref: '#/components/responses/NoEtagMatch' 429: $ref: '#/components/responses/TooManyRequests' default: $ref: '#/components/responses/Error' summary: Updates the list of custom protection rules for the Web Application Firewall. tags: - waas x-related-resource: '#/definitions/CustomProtectionRule' requestBody: content: application/json: schema: description: A list of custom protection rules to be updated. items: $ref: '#/components/schemas/CustomProtectionRuleSetting' type: array required: true /waasPolicies/{waasPolicyId}/wafConfig/deviceFingerprintChallenge: get: description: Gets the device fingerprint challenge settings in the Web Application Firewall configuration for a WAAS policy. operationId: GetDeviceFingerprintChallenge parameters: - $ref: '#/components/parameters/RequestIdHeaderParam' - $ref: '#/components/parameters/WaasPolicyIdParam' responses: 200: description: The device fingerprint challenge settings. headers: etag: description: For optimistic concurrency control. See `if-match`. schema: type: string opc-request-id: description: A unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. schema: type: string content: application/json: schema: $ref: '#/components/schemas/DeviceFingerprintChallenge' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/NotAuthenticated' 404: $ref: '#/components/responses/NotAuthorizedOrNotFound' 409: $ref: '#/components/responses/IncorrectState' 429: $ref: '#/components/responses/TooManyRequests' default: $ref: '#/components/responses/Error' summary: Returns the device fingerprint challenge settings for the Web Application Firewall. tags: - waas x-example: 'GET /20181116/waasPolicies/ocid1.waaspolicy.oc1../wafConfig/deviceFingerprintChallenge HTTP/1.1 Host: waas.us-phoenix-1.oci.oraclecloud.com <authorization and other headers> ' x-obmcs-client-retries-enabled: true put: description: '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.' operationId: UpdateDeviceFingerprintChallenge parameters: - $ref: '#/components/parameters/RequestIdHeaderParam' - $ref: '#/components/parameters/RetryTokenHeaderParam' - $ref: '#/components/parameters/WaasPolicyIdParam' - $ref: '#/components/parameters/IfMatchHeader' responses: 202: $ref: '#/components/responses/RequestAcceptedForProcessing' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/NotAuthenticated' 404: $ref: '#/components/responses/NotAuthorizedOrNotFound' 409: $ref: '#/components/responses/IncorrectState' 412: $ref: '#/components/responses/NoEtagMatch' 429: $ref: '#/components/responses/TooManyRequests' default: $ref: '#/components/responses/Error' summary: Updates the device fingerprint challenge settings for the Web Application Firewall. tags: - waas x-example: "PUT /20181116/waasPolicies/ocid1.waaspolicy.oc1../wafConfig/deviceFingerprintChallenge HTTP/1.1\nHost: waas.us-phoenix-1.oci.oraclecloud.com\n<authorization and other headers>\n{\n \"action\": \"DETECT\",\n \"actionExpirationInSeconds\": 600,\n \"challengeSettings\": {\n \"blockAction\": \"SHOW_ERROR_PAGE\",\n \"blockErrorPageCode\": \"DFC\",\n \"blockErrorPageDescription\": \"Access blocked by website owner. Please contact support.\",\n \"blockErrorPageMessage\": \"Access to the website is blocked.\",\n \"blockResponseCode\": 403,\n \"captchaFooter\": \"Enter the letters and numbers as they are shown in image above.\",\n \"captchaHeader\": \"We have detected an increased number of attempts to access this website. To help us keep this site secure, please let us know that you are not a robot by entering the text from the image below.\",\n \"captchaSubmitLabel\": \"Yes, I am human.\",\n \"captchaTitle\": \"Are you human?\"\n },\n \"failureThreshold\": 10,\n \"failureThresholdExpirationInSeconds\": 600,\n \"isEnabled\": false,\n \"maxAddressCount\": 20,\n \"maxAddressCountExpirationInSeconds\": 600\n}\n" x-related-resource: '#/definitions/DeviceFingerprintChallenge' requestBody: content: application/json: schema: $ref: '#/components/schemas/DeviceFingerprintChallenge' description: The device fingerprint challenge settings to be updated. required: true /waasPolicies/{waasPolicyId}/wafConfig/goodBots: get: description: '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. ' operationId: ListGoodBots parameters: - $ref: '#/components/parameters/RequestIdHeaderParam' - $ref: '#/components/parameters/WaasPolicyIdParam' - $ref: '#/components/parameters/LimitQueryParam' - $ref: '#/components/parameters/PageQueryParam' responses: 200: description: The list of good bots and their details. headers: etag: description: For optimistic concurrency control. See `if-match`. schema: type: string opc-next-page: description: For list pagination. When this header appears in the response, additional pages of results may remain. For important details about how pagination works, see [List Pagination](/iaas/Content/API/Concepts/usingapi.htm#nine). schema: type: string opc-request-id: description: A unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. schema: type: string content: application/json: schema: description: A list of good bots. items: $ref: '#/components/schemas/GoodBot' type: array 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/NotAuthenticated' 404: $ref: '#/components/responses/NotAuthorizedOrNotFound' 409: $ref: '#/components/responses/IncorrectState' 429: $ref: '#/components/responses/TooManyRequests' default: $ref: '#/components/responses/Error' summary: Returns the list of good bot configurations for the Web Application Firewall. tags: - waas x-example: 'GET /20181116/waasPolicies/ocid1.waaspolicy.oc1../wafConfig/goodBots HTTP/1.1 Host: waas.us-phoenix-1.oci.oraclecloud.com <authorization and other headers> ' x-obmcs-client-retries-enabled: true put: description: '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](/iaas/Content/WAF/Tasks/botmanagement.htm).' operationId: UpdateGoodBots parameters: - $ref: '#/components/parameters/RequestIdHeaderParam' - $ref: '#/components/parameters/WaasPolicyIdParam' - $ref: '#/components/parameters/RetryTokenHeaderParam' - $ref: '#/components/parameters/IfMatchHeader' responses: 202: $ref: '#/components/responses/RequestAcceptedForProcessing' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/NotAuthenticated' 404: $ref: '#/components/responses/NotAuthorizedOrNotFound' 409: $ref: '#/components/responses/IncorrectState' 412: $ref: '#/components/responses/NoEtagMatch' 429: $ref: '#/components/responses/TooManyRequests' default: $ref: '#/components/responses/Error' summary: Updates the list of good bot configurations for the Web Application Firewall. tags: - waas x-example: "PUT /20181116/waasPolicies/ocid1.waaspolicy.oc1../wafConfig/goodBots HTTP/1.1\nHost: waas.us-phoenix-1.oci.oraclecloud.com\n<authorization and other headers>\n[\n\n {\n \"description\": \"Googlebot is the search bot software used by Google, which collects documents from the web to build a searchable index for the Google Search engine.\",\n \"isEnabled\": true,\n \"key\": \"<unique key>\",\n \"name\": \"Googlebot \"\n }\n]\n" x-related-resource: '#/definitions/GoodBot' requestBody: content: application/json: schema: description: The list of good bots and their details to be updated. items: $ref: '#/components/schemas/GoodBot' type: array required: true /waasPolicies/{waasPolicyId}/wafConfig/humanInteractionChallenge: get: description: Gets the human interaction challenge settings in the Web Application Firewall configuration for a WAAS policy. operationId: GetHumanInteractionChallenge parameters: - $ref: '#/components/parameters/RequestIdHeaderParam' - $ref: '#/components/parameters/WaasPolicyIdParam' responses: 200: description: The human interaction challenge settings. headers: etag: description: For optimistic concurrency control. See `if-match`. schema: type: string opc-request-id: description: A unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. schema: type: string content: application/json: schema: $ref: '#/components/schemas/HumanInteractionChallenge' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/NotAuthenticated' 404: $ref: '#/components/responses/NotAuthorizedOrNotFound' 409: $ref: '#/components/responses/IncorrectState' 429: $ref: '#/components/responses/TooManyRequests' default: $ref: '#/components/responses/Error' summary: Returns the human interaction challenge settings for the Web Application Firewall. tags: - waas x-example: 'GET /20181116/waasPolicies/ocid1.waaspolicy.oc1../wafConfig/humanInteractionChallenge HTTP/1.1 Host: waas.us-phoenix-1.oci.oraclecloud.com <authorization and other headers> ' x-obmcs-client-retries-enabled: true put: description: 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. operationId: UpdateHumanInteractionChallenge parameters: - $ref: '#/components/parameters/RequestIdHeaderParam' - $ref: '#/components/parameters/RetryTokenHeaderParam' - $ref: '#/components/parameters/WaasPolicyIdParam' - $ref: '#/components/parameters/IfMatchHeader' responses: 202: $ref: '#/components/responses/RequestAcceptedForProcessing' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/NotAuthenticated' 404: $ref: '#/components/responses/NotAuthorizedOrNotFound' 409: $ref: '#/components/responses/IncorrectState' 412: $ref: '#/components/responses/NoEtagMatch' 429: $ref: '#/components/responses/TooManyRequests' default: $ref: '#/components/responses/Error' summary: Updates the human interaction challenge settings for the Web Application Firewall. tags: - waas x-example: "PUT /20181116/waasPolicies/ocid1.waaspolicy.oc1../wafConfig/humanInteractionChallenge HTTP/1.1\nHost: waas.us-phoenix-1.oci.oraclecloud.com\n<authorization and other headers>\n{\n \"action\": \"BLOCK\",\n \"actionExpirationInSeconds\": 600,\n \"challengeSettings\": {\n \"blockAction\": \"SHOW_ERROR_PAGE\",\n \"blockErrorPageCode\": \"HIC\",\n \"blockErrorPageDescription\": \"Access blocked by website owner. Please contact support.\",\n \"blockErrorPageMessage\": \"Access to the website is blocked.\",\n \"blockResponseCode\": 403,\n \"captchaFooter\": \"Enter the letters and numbers as they are shown in image above.\",\n \"captchaHeader\": \"We have detected an increased number of attempts to access this website. To help us keep this site secure, please let us know that you are not a robot by entering the text from the image below.\",\n \"captchaSubmitLabel\": \"Yes, I am human.\",\n \"captchaTitle\": \"Are you human?\"\n },\n \"failureThreshold\": 100,\n \"failureThresholdExpirationInSeconds\": 600,\n \"interactionThreshold\": 3,\n \"isEnabled\": false,\n \"recordingPeriodInSeconds\": 15\n}\n" x-related-resource: '#/definitions/HumanInteractionChallenge' requestBody: content: application/json: schema: $ref: '#/components/schemas/HumanInteractionChallenge' description: The human interaction challenge settings. required: true /waasPolicies/{waasPolicyId}/wafConfig/jsChallenge: get: description: Gets the JavaScript challenge settings in the Web Application Firewall configuration for a WAAS policy. operationId: GetJsChallenge parameters: - $ref: '#/components/parameters/RequestIdHeaderParam' - $ref: '#/components/parameters/WaasPolicyIdParam' responses: 200: description: The JavaScript challenge settings. headers: etag: description: For optimistic concurrency control. See `if-match`. schema: type: string opc-request-id: description: A unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. schema: type: string content: application/json: schema: $ref: '#/components/schemas/JsChallenge' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/NotAuthenticated' 404: $ref: '#/components/responses/NotAuthorizedOrNotFound' 409: $ref: '#/components/responses/IncorrectState' 429: $ref: '#/components/responses/TooManyRequests' default: $ref: '#/components/responses/Error' summary: Returns the JavaScript challenge settings for the Web Application Firewall. tags: - waas x-example: 'GET /20181116/waasPolicies/ocid1.waaspolicy.oc1../wafConfig/jsChallenge HTTP/1.1 Host: waas.us-phoenix-1.oci.oraclecloud.com <authorization and other headers> ' x-obmcs-client-retries-enabled: true put: description: 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](/iaas/Content/WAF/Tasks/botmanagement.htm). operationId: UpdateJsChallenge parameters: - $ref: '#/components/parameters/RequestIdHeaderParam' - $ref: '#/components/parameters/RetryTokenHeaderParam' - $ref: '#/components/parameters/WaasPolicyIdParam' - $ref: '#/components/parameters/IfMatchHeader' responses: 202: $ref: '#/components/responses/RequestAcceptedForProcessing' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/NotAuthenticated' 404: $ref: '#/components/responses/NotAuthorizedOrNotFound' 409: $ref: '#/components/responses/IncorrectState' 412: $ref: '#/components/responses/NoEtagMatch' 429: $ref: '#/components/responses/TooManyRequests' default: $ref: '#/components/responses/Error' summary: Updates the JavaScript challenge settings for the Web Application Firewall. tags: - waas x-example: "PUT /20181116/waasPolicies/ocid1.waaspolicy.oc1../wafConfig/jsChallenge HTTP/1.1\nHost: waas.us-phoenix-1.oci.oraclecloud.com\n<authorization and other headers>\n{\n \"action\": \"DETECT\",\n \"actionExpirationInSeconds\": 600,\n \"challengeSettings\": {\n \"blockAction\": \"SHOW_ERROR_PAGE\",\n \"blockErrorPageCode\": \"JSC-403\",\n \"blockErrorPageDescription\": \"Access blocked by website owner. Please contact support.\",\n \"blockErrorPageMessage\": \"Access to the website is blocked.\",\n \"blockResponseCode\": 403,\n \"captchaFooter\": \"Enter the letters and numbers as they are shown in image above.\",\n \"captchaHeader\": \"We have detected an increased number of attempts to access this website. To help us keep this site secure, please let us know that you are not a robot by entering the text from the image below.\",\n \"captchaSubmitLabel\": \"Yes, I am human.\",\n \"captchaTitle\": \"Are you human?\"\n },\n \"failureThreshold\": 100,\n \"isEnabled\": false,\n \"setHttpHeader\": {\n \"name\": \"x-jsc-alerts\",\n \"value\": \"{failed_amount}\"\n }\n}\n" x-related-resource: '#/definitions/JsChallenge' requestBody: content: application/json: schema: $ref: '#/components/schemas/JsChallenge' description: The JavaScript challenge settings to be updated. required: true /waasPolicies/{waasPolicyId}/wafConfig/protectionRules: get: description: '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.' operationId: ListProtectionRules parameters: - $ref: '#/components/parameters/RequestIdHeaderParam' - $ref: '#/components/parameters/WaasPolicyIdParam' - $ref: '#/components/parameters/LimitQueryParam' - $ref: '#/components/parameters/PageQueryParam' - $ref: '#/components/parameters/ProtectionModSecurityRuleIdFilterParam' - $ref: '#/components/parameters/ProtectionRuleActionFilterParam' responses: 200: description: A list of protection rules and their details. headers: etag: description: For optimistic concurrency control. See `if-match`. schema: type: string opc-next-page: description: For list pagination. When this header appears in the response, additional pages of results may remain. For important details about how pagination works, see [List Pagination](/iaas/Content/API/Concepts/usingapi.htm#nine). schema: type: string opc-request-id: description: A unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. schema: type: string content: application/json: schema: description: An array of the current protection rules for the specified application. items: $ref: '#/components/schemas/ProtectionRule' type: array 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/NotAuthenticated' 404: $ref: '#/components/responses/NotAuthorizedOrNotFound' 409: $ref: '#/components/responses/IncorrectState' 429: $ref: '#/components/responses/TooManyRequests' default: $ref: '#/components/responses/Error' summary: Returns the list of protection rules for the Web Application Firewall. tags: - waas x-example: 'GET /20181116/waasPolicies/ocid1.waaspolicy.oc1../wafConfig/protectionRules HTTP/1.1 Host: waas.us-phoenix-1.oci.oraclecloud.com <authorization and other headers> ' x-obmcs-client-retries-enabled: true put: description: '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](/iaas/Content/WAF/Tasks/wafprotectionrules.htm). 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.' operationId: UpdateProtectionRules parameters: - $ref: '#/components/parameters/RequestIdHeaderParam' - $ref: '#/components/parameters/WaasPolicyIdParam' - $ref: '#/components/parameters/IfMatchHeader' responses: 202: $ref: '#/components/responses/RequestAcceptedForProcessing' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/NotAuthenticated' 404: $ref: '#/components/responses/NotAuthorizedOrNotFound' 409: $ref: '#/components/responses/IncorrectState' 412: $ref: '#/components/responses/NoEtagMatch' 429: $ref: '#/components/responses/TooManyRequests' default: $ref: '#/components/responses/Error' summary: Updates the list of protection rules for the Web Application Firewall. tags: - waas x-example: "PUT /20181116/waasPolicies/ocid1.waaspolicy.oc1../wafConfig/protectionRules HTTP/1.1\nHost: waas.us-phoenix-1.oci.oraclecloud.com\n<authorization and other headers>\n[\n\t{\n \"action\": \"DETECT\",\n \"key\": \"933111\"\n}\n]\n" x-related-resource: '#/definitions/ProtectionRule' requestBody: content: application/json: schema: description: A list of protection rules for which to update the actions. items: $ref: '#/components/schemas/ProtectionRuleAction' type: array required: true /waasPolicies/{waasPolicyId}/wafConfig/protectionRules/{protectionRuleKey}: get: description: Gets the details of a protection rule in the Web Application Firewall configuration for a WAAS policy. operationId: GetProtectionRule parameters: - $ref: '#/components/parameters/RequestIdHeaderParam' - $ref: '#/components/parameters/WaasPolicyIdParam' - $ref: '#/components/parameters/ProtectionRuleKeyParam' responses: 200: description: The details of the protection rule. headers: etag: description: For optimistic concurrency control. See `if-match`. schema: type: string opc-request-id: description: A unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. schema: type: string content: application/json: schema: $ref: '#/components/schemas/ProtectionRule' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/NotAuthenticated' 404: $ref: '#/components/responses/NotAuthorizedOrNotFound' 409: $ref: '#/components/responses/IncorrectState' 429: $ref: '#/components/responses/TooManyRequests' default: $ref: '#/components/responses/Error' summary: Returns the details of a single protection rule. tags: - waas x-example: 'GET /20181116/waasPolicies/ocid1.waaspolicy.oc1../wafConfig/protectionRules/2019000513 HTTP/1.1 Host: waas.us-phoenix-1.oci.oraclecloud.com <authorization and other headers> ' x-obmcs-client-retries-enabled: true /waasPolicies/{waasPolicyId}/wafConfig/protectionSettings: get: description: Gets the protection settings in the Web Application Firewall configuration for a WAAS policy. operationId: GetProtectionSettings parameters: - $ref: '#/components/parameters/RequestIdHeaderParam' - $ref: '#/components/parameters/WaasPolicyIdParam' responses: 200: description: The details of the protection settings. headers: etag: description: For optimistic concurrency control. See `if-match`. schema: type: string opc-request-id: description: A unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. schema: type: string content: application/json: schema: $ref: '#/components/schemas/ProtectionSettings' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/NotAuthenticated' 404: $ref: '#/components/responses/NotAuthorizedOrNotFound' 409: $ref: '#/components/responses/IncorrectState' 429: $ref: '#/components/responses/TooManyRequests' default: $ref: '#/components/responses/Error' summary: Returns the protection settings for the Web Application Firewall. tags: - waas x-example: 'GET /20181116/waasPolicies/ocid1.waaspolicy.oc1../wafConfig/protectionSettings HTTP/1.1 Host: waas.us-phoenix-1.oci.oraclecloud.com <authorization and other headers> ' x-obmcs-client-retries-enabled: true put: description: 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. operationId: UpdateProtectionSettings parameters: - $ref: '#/components/parameters/RequestIdHeaderParam' - $ref: '#/components/parameters/RetryTokenHeaderParam' - $ref: '#/components/parameters/WaasPolicyIdParam' - $ref: '#/components/parameters/IfMatchHeader' responses: 202: $ref: '#/components/responses/RequestAcceptedForProcessing' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/NotAuthenticated' 404: $ref: '#/components/responses/NotAuthorizedOrNotFound' 409: $ref: '#/components/responses/IncorrectState' 412: $ref: '#/components/responses/NoEtagMatch' 429: $ref: '#/components/responses/TooManyRequests' default: $ref: '#/components/responses/Error' summary: Updates the protection settings for the Web Application Firewall. tags: - waas x-example: "PUT /20181116/waasPolicies/ocid1.waaspolicy.oc1../wafConfig/protectionSettings HTTP/1.1\nHost: waas.us-phoenix-1.oci.oraclecloud.com\n<authorization and other headers>\n{\n \"allowedHttpMethods\": [\n \"GET\",\n \"POST\",\n \"HEAD\",\n \"OPTIONS\"\n ],\n \"blockAction\": \"SHOW_ERROR_PAGE\",\n \"blockErrorPageCode\": \"403\",\n \"blockErrorPageDescription\": \"Access blocked by website owner. Please contact support.\",\n \"blockErrorPageMessage\": \"Access to the website is blocked.\",\n \"blockResponseCode\": 403,\n \"isResponseInspected\": false,\n \"maxArgumentCount\": 255,\n \"maxNameLengthPerArgument\": 200,\n \"maxResponseSizeInKiB\": 1024,\n \"maxTotalNameLengthOfArguments\": 64000,\n \"mediaTypes\": [\n \"text/html\",\n \"text/plain\"\n ],\n \"recommendationsPeriodInDays\": 10\n}\n" x-related-resource: '#/definitions/ProtectionSettings' requestBody: content: application/json: schema: $ref: '#/components/schemas/ProtectionSettings' description: The details of the protection settings to be updated. required: true /waasPolicies/{waasPolicyId}/wafConfig/recommendations: get: description: '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](/iaas/Content/WAF/Tasks/wafprotectionrules.htm). The list is sorted by `key`, in ascending order.' operationId: ListRecommendations parameters: - $ref: '#/components/parameters/RequestIdHeaderParam' - $ref: '#/components/parameters/WaasPolicyIdParam' - $ref: '#/components/parameters/RecommendationFilterParam' - $ref: '#/components/parameters/LimitQueryParam' - $ref: '#/components/parameters/PageQueryParam' responses: 200: description: The list of recommended Web Application Firewall protection rules. headers: etag: description: For optimistic concurrency control. See `if-match`. schema: type: string opc-next-page: description: For list pagination. When this header appears in the response, additional pages of results may remain. For important details about how pagination works, see [List Pagination](/iaas/Content/API/Concepts/usingapi.htm#nine). schema: type: string opc-request-id: description: A unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. schema: type: string content: application/json: schema: description: A list of protection rule recommendations. items: $ref: '#/components/schemas/Recommendation' type: array 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/NotAuthenticated' 404: $ref: '#/components/responses/NotAuthorizedOrNotFound' 409: $ref: '#/components/responses/IncorrectState' 429: $ref: '#/components/responses/TooManyRequests' default: $ref: '#/components/responses/Error' summary: Returns the list of recommended Web Application Firewall protection rules. tags: - waas x-example: 'GET /20181116/waasPolicies/ocid1.waaspolicy.oc1../wafConfig/recommendations HTTP/1.1 Host: waas.us-phoenix-1.oci.oraclecloud.com <authorization and other headers> ' x-obmcs-client-retries-enabled: true /waasPolicies/{waasPolicyId}/wafConfig/threatFeeds: get: description: '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. ' operationId: ListThreatFeeds parameters: - $ref: '#/components/parameters/RequestIdHeaderParam' - $ref: '#/components/parameters/WaasPolicyIdParam' - $ref: '#/components/parameters/LimitQueryParam' - $ref: '#/components/parameters/PageQueryParam' responses: 200: description: The list of web application threat intelligence feeds. headers: etag: description: For optimistic concurrency control. See `if-match`. schema: type: string opc-next-page: description: For list pagination. When this header appears in the response, additional pages of results may remain. For important details about how pagination works, see [List Pagination](/iaas/Content/API/Concepts/usingapi.htm#nine). schema: type: string opc-request-id: description: A unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. schema: type: string content: application/json: schema: description: A list of threat feeds. items: $ref: '#/components/schemas/ThreatFeed' type: array 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/NotAuthenticated' 404: $ref: '#/components/responses/NotAuthorizedOrNotFound' 409: $ref: '#/components/responses/IncorrectState' 429: $ref: '#/components/responses/TooManyRequests' default: $ref: '#/components/responses/Error' summary: Returns a list of threat intelligence feeds. tags: - waas x-example: 'GET /20181116/waasPolicies/ocid1.waaspolicy.oc1../wafConfig/threatFeeds HTTP/1.1 Host: waas.us-phoenix-1.oci.oraclecloud.com <authorization and other headers> ' x-obmcs-client-retries-enabled: true put: description: 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. operationId: UpdateThreatFeeds parameters: - $ref: '#/components/parameters/RequestIdHeaderParam' - $ref: '#/components/parameters/WaasPolicyIdParam' - $ref: '#/components/parameters/IfMatchHeader' responses: 202: $ref: '#/components/responses/RequestAcceptedForProcessing' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/NotAuthenticated' 404: $ref: '#/components/responses/NotAuthorizedOrNotFound' 409: $ref: '#/components/responses/IncorrectState' 412: $ref: '#/components/responses/NoEtagMatch' 429: $ref: '#/components/responses/TooManyRequests' default: $ref: '#/components/responses/Error' summary: Updates the action for each threat intelligence feed. tags: - waas x-example: "PUT /20181116/waasPolicies/ocid1.waaspolicy.oc1../wafConfig/threatFeeds HTTP/1.1\nHost: waas.us-phoenix-1.oci.oraclecloud.com\n<authorization and other headers>\n[\n {\n \"action\": \"DETECT\",\n \"description\": \"the IP blocklist includes known ZeuS Command & Control servers (hosts) around the world.\\n\",\n \"key\": \"d5fc71f4-6ec7-4c08-88e5-c06a251e08f5\",\n \"name\": \"Zeus Tracker\"\n }\n]\n" x-related-resource: '#/definitions/ThreatFeed' requestBody: content: application/json: schema: description: A list of actions. items: $ref: '#/components/schemas/ThreatFeedAction' type: array description: A list of threat feeds for which to update the actions. required: true /waasPolicies/{waasPolicyId}/wafConfig/whitelists: get: description: Gets the list of whitelists defined in the Web Application Firewall configuration for a WAAS policy. operationId: ListWhitelists parameters: - $ref: '#/components/parameters/RequestIdHeaderParam' - $ref: '#/components/parameters/WaasPolicyIdParam' - $ref: '#/components/parameters/LimitQueryParam' - $ref: '#/components/parameters/PageQueryParam' responses: 200: description: The list of whitelists. headers: etag: description: For optimistic concurrency control. See `if-match`. schema: type: string opc-next-page: description: For list pagination. When this header appears in the response, additional pages of results may remain. For important details about how pagination works, see [List Pagination](/iaas/Content/API/Concepts/usingapi.htm#nine). schema: type: string opc-request-id: description: A unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. schema: type: string content: application/json: schema: description: A list of whitelist IP addresses that should bypass the Web Application Firewall. items: $ref: '#/components/schemas/Whitelist' type: array 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/NotAuthenticated' 404: $ref: '#/components/responses/NotAuthorizedOrNotFound' 409: $ref: '#/components/responses/IncorrectState' 429: $ref: '#/components/responses/TooManyRequests' default: $ref: '#/components/responses/Error' summary: Returns a list of whitelists for the Web Application Firewall. tags: - waas x-example: 'GET /20181116/waasPolicies/ocid1.waaspolicy.oc1../wafConfig/whitelists HTTP/1.1 Host: waas.us-phoenix-1.oci.oraclecloud.com <authorization and other headers> ' x-obmcs-client-retries-enabled: true put: description: '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.' operationId: UpdateWhitelists parameters: - $ref: '#/components/parameters/RequestIdHeaderParam' - $ref: '#/components/parameters/WaasPolicyIdParam' - $ref: '#/components/parameters/RetryTokenHeaderParam' - $ref: '#/components/parameters/IfMatchHeader' responses: 202: $ref: '#/components/responses/RequestAcceptedForProcessing' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/NotAuthenticated' 404: $ref: '#/components/responses/NotAuthorizedOrNotFound' 409: $ref: '#/components/responses/IncorrectState' 412: $ref: '#/components/responses/NoEtagMatch' 429: $ref: '#/components/responses/TooManyRequests' default: $ref: '#/components/responses/Error' summary: Updates the list of whitelists for the Web Application Firewall. tags: - waas x-example: "PUT /20181116/waasPolicies/ocid1.waaspolicy.oc1../wafConfig/whitelists HTTP/1.1\nHost: waas.us-phoenix-1.oci.oraclecloud.com\n<authorization and other headers>\n[\n {\n \"addresses\": [\n \"192.0.2.0\"\n ],\n \"key\": \"01b07c56-b0cc-4a0e-a5c5-7069320e2d81\",\n \"name\": \"whats my ip?\"\n },\n {\n \"addresses\": [\n \"8.8.8.8\"\n ],\n \"key\": \"1fc13898-b30c-4e44-bf63-2f9b75d9625f\",\n \"name\": \"google name change test2\"\n }\n]\n" x-related-resource: '#/definitions/Whitelist' requestBody: content: application/json: schema: description: The list of updated whitelists that bypass the Web Application Firewall. There is no limit on the number of IP addresses that may be passed. items: $ref: '#/components/schemas/Whitelist' type: array required: true /waasPolicies/{waasPolicyId}/wafLogs: get: description: 'Gets structured Web Application Firewall event logs for a WAAS policy. Sorted by the `timeObserved` in ascending order (starting from the oldest recorded event). ' operationId: ListWafLogs parameters: - $ref: '#/components/parameters/RequestIdHeaderParam' - $ref: '#/components/parameters/WaasPolicyIdParam' - $ref: '#/components/parameters/LargeLimitQueryParam' - $ref: '#/components/parameters/PageQueryParam' - $ref: '#/components/parameters/FromDateLogObservedQueryParam' - $ref: '#/components/parameters/ToDateLogObservedQueryParam' - description: A full text search for logs. in: query name: textContains x-isnullable: true schema: type: string - description: Filters logs by access rule key. in: query name: accessRuleKey x-isnullable: true style: form explode: true schema: type: array items: type: string - description: Filters logs by Web Application Firewall action. in: query name: action x-isnullable: true style: form explode: true schema: type: array items: enum: - BLOCK - DETECT - BYPASS - LOG - REDIRECTED type: string - description: Filters logs by client IP address. in: query name: clientAddress x-isnullable: true style: form explode: true schema: type: array items: type: string - description: Filters logs by country code. Country codes are in ISO 3166-1 alpha-2 format. For a list of codes, see [ISO's website](https://www.iso.org/obp/ui/#search/code/). in: query name: countryCode x-isnullable: true style: form explode: true schema: type: array items: maxLength: 2 minLength: 2 pattern: '[A-Z]{2}' type: string - description: Filter logs by country name. in: query name: countryName x-isnullable: true style: form explode: true schema: type: array items: type: string - description: Filter logs by device fingerprint. in: query name: fingerprint x-isnullable: true style: form explode: true schema: type: array items: type: string - description: Filter logs by HTTP method. in: query name: httpMethod x-isnullable: true style: form explode: true schema: type: array items: enum: - OPTIONS - GET - HEAD - POST - PUT - DELETE - TRACE - CONNECT type: string - description: Filter logs by incident key. in: query name: incidentKey x-isnullable: true style: form explode: true schema: type: array items: type: string - description: Filter by log type. For more information about WAF logs, see [Logs](/iaas/Content/WAF/Tasks/logs.htm). in: query name: logType x-isnullable: true style: form explode: true schema: type: array items: enum: - ACCESS - PROTECTION_RULES - JS_CHALLENGE - CAPTCHA - ACCESS_RULES - THREAT_FEEDS - HUMAN_INTERACTION_CHALLENGE - DEVICE_FINGERPRINT_CHALLENGE - ADDRESS_RATE_LIMITING type: string - description: Filter by origin IP address. in: query name: originAddress x-isnullable: true style: form explode: true schema: type: array items: type: string - description: Filter by referrer. in: query name: referrer x-isnullable: true style: form explode: true schema: type: array items: type: string - description: Filter by request URL. in: query name: requestUrl x-isnullable: true style: form explode: true schema: type: array items: type: string - description: Filter by response code. in: query name: responseCode x-isnullable: true style: form explode: true schema: type: array items: maximum: 999 minimum: 100 type: integer - description: Filter by threat feed key. in: query name: threatFeedKey x-isnullable: true style: form explode: true schema: type: array items: type: string - description: Filter by user agent. in: query name: userAgent x-isnullable: true style: form explode: true schema: type: array items: type: string - description: Filter by protection rule key. in: query name: protectionRuleKey x-isnullable: true style: form explode: true schema: type: array items: type: string responses: 200: description: Web Application Firewall logs headers: opc-next-page: description: For list pagination. When this header appears in the response, additional pages of results may remain. For important details about how pagination works, see [List Pagination](/iaas/Content/API/Concepts/usingapi.htm#nine). schema: type: string opc-request-id: description: A unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. schema: type: string content: application/json: schema: description: A list of Web Application Firewall log entries. Each entry is a JSON object whose fields vary based on log type. items: $ref: '#/components/schemas/WafLog' type: array 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/NotAuthenticated' 404: $ref: '#/components/responses/NotAuthorizedOrNotFound' 409: $ref: '#/components/responses/IncorrectState' 429: $ref: '#/components/responses/TooManyRequests' default: $ref: '#/components/responses/Error' summary: Returns a list of logs for the Web Application Firewall. tags: - waas x-example: 'GET /20181116/waasPolicies/ocid1.waaspolicy.oc1../wafLogs HTTP/1.1 Host: waas.us-phoenix-1.oci.oraclecloud.com <authorization and other headers> ' x-obmcs-client-retries-enabled: true /workRequests: get: description: 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. operationId: ListWorkRequests parameters: - $ref: '#/components/parameters/RequestIdHeaderParam' - $ref: '#/components/parameters/WaasPolicyIdQueryParam' - $ref: '#/components/parameters/CompartmentIdQueryParam' - $ref: '#/components/parameters/LimitQueryParam' - $ref: '#/components/parameters/PageQueryParam' - $ref: '#/components/parameters/WorkRequestSortByQueryParam' - $ref: '#/components/parameters/SortOrderQueryParam' responses: 200: description: The list of work requests. headers: opc-next-page: description: For list pagination. When this header appears in the response, additional pages of results may remain. For important details about how pagination works, see [List Pagination](/iaas/Content/API/Concepts/usingapi.htm#nine). schema: type: string opc-request-id: description: A unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. schema: type: string content: application/json: schema: items: $ref: '#/components/schemas/WorkRequestSummary' type: array 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/NotAuthenticated' 404: $ref: '#/components/responses/NotAuthorizedOrNotFound' 429: $ref: '#/components/responses/TooManyRequests' default: $ref: '#/components/responses/Error' summary: Returns a list of work requests. tags: - waas x-example: 'GET /20181116/workRequests?compartmentId=ocid1.compartment.oc1..; waasPolicyId=ocid1.waaspolicy.oc1.. HTTP/1.1 Host: waas.us-phoenix-1.oci.oraclecloud.com <authorization and other headers> ' x-obmcs-client-retries-enabled: true /workRequests/{workRequestId}: delete: description: Cancels a specified work request. operationId: CancelWorkRequest parameters: - $ref: '#/components/parameters/RequestIdHeaderParam' - $ref: '#/components/parameters/WorkRequestIdParam' - $ref: '#/components/parameters/RetryTokenHeaderParam' - $ref: '#/components/parameters/IfMatchHeader' responses: 202: description: The cancellation request was accepted for processing. headers: opc-request-id: description: A unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. schema: type: string 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/NotAuthenticated' 404: $ref: '#/components/responses/NotAuthorizedOrNotFound' 409: $ref: '#/components/responses/IncorrectState' 429: $ref: '#/components/responses/TooManyRequests' default: $ref: '#/components/responses/Error' summary: Cancels a work request. tags: - waas x-example: 'DELETE /20181116/workRequests/ocid1.waasworkrequest.oc1.. HTTP/1.1 Host: waas.us-phoenix-1.oci.oraclecloud.com <authorization and other headers> ' x-related-resource: '#/definitions/WorkRequest' get: description: Gets the details of a specified work request. operationId: GetWorkRequest parameters: - $ref: '#/components/parameters/RequestIdHeaderParam' - $ref: '#/components/parameters/WorkRequestIdParam' responses: 200: description: The details of the work request. headers: Retry-After: description: A decimal number representing the number of seconds the client should wait before polling this endpoint again. schema: type: number format: float etag: description: For optimistic concurrency control. See `if-match`. schema: type: string opc-request-id: description: A unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. schema: type: string content: application/json: schema: $ref: '#/components/schemas/WorkRequest' 400: $ref: '#/components/responses/BadRequest' 401: $ref: '#/components/responses/NotAuthenticated' 404: $ref: '#/components/responses/NotAuthorizedOrNotFound' 429: $ref: '#/components/responses/TooManyRequests' default: $ref: '#/components/responses/Error' summary: Returns the details of a work request. tags: - waas x-example: 'GET /20181116/workRequests/ocid1.waasworkrequest.oc1.. HTTP/1.1 Host: waas.us-phoenix-1.oci.oraclecloud.com <authorization and other headers> ' x-obmcs-client-retries-enabled: true components: schemas: ProtectionSettings: description: The settings used for protection rules. properties: allowedHttpMethods: description: 'The list of allowed HTTP methods. If unspecified, default to `[OPTIONS, GET, HEAD, POST]`. This setting only applies if a corresponding protection rule is enabled, such as the "Restrict HTTP Request Methods" rule (key: 911100).' items: enum: - OPTIONS - GET - HEAD - POST - PUT - DELETE - TRACE - CONNECT - PATCH - PROPFIND type: string type: array blockAction: description: If `action` is set to `BLOCK`, this specifies how the traffic is blocked when detected as malicious by a protection rule. If unspecified, defaults to `SET_RESPONSE_CODE`. enum: - SHOW_ERROR_PAGE - SET_RESPONSE_CODE type: string x-isnullable: true blockErrorPageCode: description: The error code to show on the error page when `action` is set to `BLOCK`, `blockAction` is set to `SHOW_ERROR_PAGE`, and the traffic is detected as malicious by a protection rule. If unspecified, defaults to `403`. maxLength: 5000 minLength: 1 type: string x-isnullable: true blockErrorPageDescription: description: The description text to show on the error page when `action` is set to `BLOCK`, `blockAction` is set to `SHOW_ERROR_PAGE`, and the traffic is detected as malicious by a protection rule. If unspecified, defaults to `Access blocked by website owner. Please contact support.` maxLength: 5000 minLength: 1 type: string x-isnullable: true blockErrorPageMessage: description: The message to show on the error page when `action` is set to `BLOCK`, `blockAction` is set to `SHOW_ERROR_PAGE`, and the traffic is detected as malicious by a protection rule. If unspecified, defaults to 'Access to the website is blocked.' maxLength: 5000 minLength: 1 type: string x-isnullable: true blockResponseCode: description: 'The response code returned when `action` is set to `BLOCK`, `blockAction` is set to `SET_RESPONSE_CODE`, and the traffic is detected as malicious by a protection rule. If unspecified, defaults to `403`. The list of available response codes: `400`, `401`, `403`, `405`, `409`, `411`, `412`, `413`, `414`, `415`, `416`, `500`, `501`, `502`, `503`, `504`, `507`.' maximum: 999 minimum: 100 type: integer x-isnullable: true isResponseInspected: description: 'Inspects the response body of origin responses. Can be used to detect leakage of sensitive data. If unspecified, defaults to `false`. **Note:** Only origin responses with a Content-Type matching a value in `mediaTypes` will be inspected.' type: boolean x-isnullable: true maxArgumentCount: description: 'The maximum number of arguments allowed to be passed to your application before an action is taken. Arguements are query parameters or body parameters in a PUT or POST request. If unspecified, defaults to `255`. This setting only applies if a corresponding protection rule is enabled, such as the "Number of Arguments Limits" rule (key: 960335). Example: If `maxArgumentCount` to `2` for the Max Number of Arguments protection rule (key: 960335), the following requests would be blocked: `GET /myapp/path?query=one&query=two&query=three` `POST /myapp/path` with Body `{"argument1":"one","argument2":"two","argument3":"three"}`' maximum: 10000 minimum: 1 type: integer x-isnullable: true maxNameLengthPerArgument: description: 'The maximum length allowed for each argument name, in characters. Arguements are query parameters or body parameters in a PUT or POST request. If unspecified, defaults to `400`. This setting only applies if a corresponding protection rule is enabled, such as the "Values Limits" rule (key: 960208).' maximum: 150000 minimum: 1 type: integer x-isnullable: true maxResponseSizeInKiB: description: The maximum response size to be fully inspected, in binary kilobytes (KiB). Anything over this limit will be partially inspected. If unspecified, defaults to `1024`. maximum: 2048 minimum: 10 type: integer x-isnullable: true maxTotalNameLengthOfArguments: description: 'The maximum length allowed for the sum of the argument name and value, in characters. Arguements are query parameters or body parameters in a PUT or POST request. If unspecified, defaults to `64000`. This setting only applies if a corresponding protection rule is enabled, such as the "Total Arguments Limits" rule (key: 960341).' maximum: 360000 minimum: 1 type: integer x-isnullable: true mediaTypes: description: "The list of media types to allow for inspection, if `isResponseInspected` is enabled. Only responses with MIME types in this list will be inspected. If unspecified, defaults to `[\"text/html\", \"text/plain\", \"text/xml\"]`.\n\n Supported MIME types include:\n\n - text/html\n - text/plain\n - text/asp\n - text/css\n - text/x-script\n - application/json\n - text/webviewhtml\n - text/x-java-source\n - application/x-javascript\n - application/javascript\n - application/ecmascript\n - text/javascript\n - text/ecmascript\n - text/x-script.perl\n - text/x-script.phyton\n - application/plain\n - application/xml\n - text/xml" items: type: string type: array recommendationsPeriodInDays: description: 'The length of time to analyze traffic traffic, in days. After the analysis period, `WafRecommendations` will be populated. If unspecified, defaults to `10`. Use `GET /waasPolicies/{waasPolicyId}/wafRecommendations` to view WAF recommendations.' maximum: 100 minimum: 5 type: integer x-isnullable: true type: object AddressRateLimiting: description: The IP rate limiting configuration. Defines the amount of allowed requests from a unique IP address and the resulting block response code when that threshold is exceeded. properties: allowedRatePerAddress: description: The number of allowed requests per second from one IP address. If unspecified, defaults to `1`. maximum: 9999 minimum: 1 type: integer x-isnullable: true blockResponseCode: description: 'The response status code returned when a request is blocked. If unspecified, defaults to `503`. The list of available response codes: `400`, `401`, `403`, `404`, `405`, `408`, `409`, `411`, `412`, `413`, `414`, `415`, `416`, `422`, `494`, `495`, `496`, `497`, `499`, `500`, `501`, `502`, `503`, `504`, `507`.' maximum: 999 minimum: 100 type: integer x-isnullable: true isEnabled: description: Enables or disables the address rate limiting Web Application Firewall feature. type: boolean maxDelayedCountPerAddress: description: The maximum number of requests allowed to be queued before subsequent requests are dropped. If unspecified, defaults to `10`. maximum: 9999 minimum: 1 type: integer x-isnullable: true required: - isEnabled type: object Error: description: An error code and message. properties: code: type: string message: type: string required: - code - message type: object CachingRuleSummary: description: The caching rule settings. properties: action: description: 'The action to take when the criteria of a caching rule are met. - **CACHE:** Caches requested content when the criteria of the rule are met. - **BYPASS_CACHE:** Allows requests to bypass the cache and be directed to the origin when the criteria of the rule is met.' enum: - CACHE - BYPASS_CACHE type: string x-isnullable: true cachingDuration: description: 'The duration to cache content for the caching rule, specified in ISO 8601 extended format. Supported units: seconds, minutes, hours, days, weeks, months. The maximum value that can be set for any unit is `99`. Mixing of multiple units is not supported. Only applies when the `action` is set to `CACHE`. Example: `PT1H`' example: PT1H type: string x-isnullable: true clientCachingDuration: description: 'The duration to cache content in the user''s browser, specified in ISO 8601 extended format. Supported units: seconds, minutes, hours, days, weeks, months. The maximum value that can be set for any unit is `99`. Mixing of multiple units is not supported. Only applies when the `action` is set to `CACHE`. Example: `PT1H`' example: PT1H type: string x-isnullable: true criteria: description: The array of the rule criteria with condition and value. The caching rule would be applied for the requests that matched any of the listed conditions. items: $ref: '#/components/schemas/CachingRuleCriteria' type: array isClientCachingEnabled: description: 'Enables or disables client caching. Browsers use the `Cache-Control` header value for caching content locally in the browser. This setting overrides the addition of a `Cache-Control` header in responses.' type: boolean x-isnullable: true key: description: The unique key for the caching rule. type: string name: description: The name of the caching rule. maxLength: 255 minLength: 1 type: string required: - name - action - criteria type: object AddressListSummary: description: A summary of the address list's information. properties: addressCount: description: The total number of unique IP addresses in the address list. type: number compartmentId: description: The [OCID](/Content/General/Concepts/identifiers.htm) of the address list's compartment. maxLength: 255 minLength: 1 type: string definedTags: additionalProperties: additionalProperties: description: 'The value of the tag. Only the String type is supported. ' type: object description: 'Key-value pair representing a defined tag key and value, scoped to a namespace. Example: `{"CostCenter": "42"}` ' type: object description: 'Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see [Resource Tags](/Content/General/Concepts/resourcetags.htm). Example: `{"Operations": {"CostCenter": "42"}}` ' type: object displayName: description: The user-friendly name of the address list. maxLength: 255 minLength: 1 type: string freeformTags: additionalProperties: type: string x-isnullable: true description: 'Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see [Resource Tags](/Content/General/Concepts/resourcetags.htm). Example: `{"Department": "Finance"}` ' type: object id: description: The [OCID](/Content/General/Concepts/identifiers.htm) of the address list. maxLength: 255 minLength: 1 type: string lifecycleState: description: The current lifecycle state of the address list. enum: - CREATING - ACTIVE - FAILED - UPDATING - DELETING - DELETED type: string x-obmcs-top-level-enum: '#/definitions/LifecycleStates' timeCreated: description: The date and time the address list was created, in the format defined by RFC3339. example: '2018-11-16T21:10:29Z' format: date-time type: string type: object CertificateSubjectName: description: The entity to be secured by the certificate. properties: commonName: description: The fully qualified domain name used for DNS lookups of the server. type: string country: description: ISO 3166-1 alpha-2 code of the country where the organization is located. For a list of codes, see [ISO's website](https://www.iso.org/obp/ui/#search/code/). type: string emailAddress: description: The email address of the server's administrator. type: string locality: description: The city in which the organization is located. type: string organization: description: The organization name. type: string organizationalUnit: description: The field to differentiate between divisions within an organization. type: string stateProvince: description: The province where the organization is located. type: string type: object Recommendation: description: 'A recommended protection rule for a web application. This recommendation can be accepted to apply it to the Web Application Firewall configuration for this policy. Use the `POST /waasPolicies/{waasPolicyId}/actions/acceptWafConfigRecommendations` method to accept recommended protection rules.' properties: description: description: The description of the recommended protection rule. type: string x-isnullable: true key: description: The unique key for the recommended protection rule. type: string labels: description: The list of labels for the recommended protection rule. items: type: string type: array x-isnullable: true modSecurityRuleIds: description: 'The list of the ModSecurity rule IDs associated with the protection rule. For more information about ModSecurity''s open source WAF rules, see [Mod Security''s documentation](https://www.modsecurity.org/CRS/Documentation/index.html).' items: type: string type: array name: description: The name of the recommended protection rule. maxLength: 255 minLength: 1 type: string x-isnullable: true recommendedAction: description: The recommended action to apply to the protection rule. type: string x-isnullable: true type: object CustomProtectionRuleSetting: description: The OCID and action of a custom protection rule. properties: action: default: DETECT description: 'The action to take when the custom protection rule is triggered. `DETECT` - Logs the request when the criteria of the custom protection rule are met. `BLOCK` - Blocks the request when the criteria of the custom protection rule are met.' enum: - DETECT - BLOCK type: string exclusions: items: $ref: '#/components/schemas/ProtectionRuleExclusion' type: array id: description: The [OCID](/Content/General/Concepts/identifiers.htm) of the custom protection rule. maxLength: 255 minLength: 1 type: string type: object Captcha: description: 'The settings of the CAPTCHA challenge. If a specific URL should be accessed only by a human, a CAPTCHA challenge can be placed at the URL to protect the web application from bots. *Warning:* Oracle recommends that you avoid using any confidential information when you supply string values using the API.' properties: failureMessage: description: The text to show when incorrect CAPTCHA text is entered. If unspecified, defaults to `The CAPTCHA was incorrect. Try again.` maxLength: 5000 minLength: 1 type: string x-isnullable: true footerText: description: The text to show in the footer when showing a CAPTCHA challenge. If unspecified, defaults to 'Enter the letters and numbers as they are shown in the image above.' maxLength: 5000 minLength: 1 type: string x-isnullable: true headerText: description: The text to show in the header when showing a CAPTCHA challenge. If unspecified, defaults to 'We have detected an increased number of attempts to access this website. To help us keep this site secure, please let us know that you are not a robot by entering the text from the image below.' maxLength: 5000 minLength: 1 type: string x-isnullable: true sessionExpirationInSeconds: description: The amount of time before the CAPTCHA expires, in seconds. If unspecified, defaults to `300`. maximum: 432000 minimum: 1 type: integer x-isnullable: true submitLabel: description: The text to show on the label of the CAPTCHA challenge submit button. If unspecified, defaults to `Yes, I am human`. maxLength: 100 minLength: 1 type: string x-isnullable: true title: description: The title used when displaying a CAPTCHA challenge. If unspecified, defaults to `Are you human?` maxLength: 100 minLength: 1 type: string x-isnullable: true url: description: The unique URL path at which to show the CAPTCHA challenge. maxLength: 8000 minLength: 1 type: string x-isnullable: true required: - sessionExpirationInSeconds - title - url - failureMessage - submitLabel type: object CertificateSummary: description: 'A summary of the SSL certificate''s information. **Warning:** Oracle recommends that you avoid using any confidential information when you supply string values using the API.' properties: compartmentId: description: The [OCID](/Content/General/Concepts/identifiers.htm) of the SSL certificate's compartment. maxLength: 255 minLength: 1 type: string definedTags: additionalProperties: additionalProperties: description: 'The value of the tag. Only the String type is supported. ' type: object description: 'Key-value pair representing a defined tag key and value, scoped to a namespace. Example: `{"CostCenter": "42"}` ' type: object description: 'Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see [Resource Tags](/Content/General/Concepts/resourcetags.htm). Example: `{"Operations": {"CostCenter": "42"}}` ' type: object displayName: description: The user-friendly name of the SSL certificate. maxLength: 255 minLength: 1 type: string freeformTags: additionalProperties: type: string x-isnullable: true description: 'Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see [Resource Tags](/Content/General/Concepts/resourcetags.htm). Example: `{"Department": "Finance"}` ' type: object id: description: The [OCID](/Content/General/Concepts/identifiers.htm) of the SSL certificate. maxLength: 255 minLength: 1 type: string lifecycleState: description: The current lifecycle state of the certificate. enum: - CREATING - ACTIVE - FAILED - UPDATING - DELETING - DELETED type: string x-obmcs-top-level-enum: '#/definitions/LifecycleStates' timeCreated: description: The date and time the certificate was created, in the format defined by RFC3339. example: '2018-11-16T21:10:29Z' format: date-time type: string timeNotValidAfter: description: The date and time the certificate will expire, expressed in RFC 3339 timestamp format. example: '2018-11-16T21:10:29Z' format: date-time type: string type: object WorkRequestSummary: description: The summarized details of a work request. properties: compartmentId: description: The [OCID](/Content/General/Concepts/identifiers.htm) of the compartment that contains the work request. maxLength: 255 minLength: 1 type: string id: description: The [OCID](/Content/General/Concepts/identifiers.htm) of the work request. example: ocid.work-request.oc1.phx.abuxgljr6l4nepxjkmbtnibwqpu5z24xdvmr7okzoi47wicoflrxh32rwd7a maxLength: 255 minLength: 1 type: string operationType: description: A description of the operation requested by the work request. enum: - CREATE_WAAS_POLICY - UPDATE_WAAS_POLICY - DELETE_WAAS_POLICY - CREATE_HTTP_REDIRECT - UPDATE_HTTP_REDIRECT - DELETE_HTTP_REDIRECT - PURGE_WAAS_POLICY_CACHE - CREATE_CUSTOM_PROTECTION_RULE - UPDATE_CUSTOM_PROTECTION_RULE - DELETE_CUSTOM_PROTECTION_RULE type: string x-obmcs-top-level-enum: '#/definitions/WorkRequestOperationTypes' percentComplete: description: The percentage of work completed by the work request. format: int32 maximum: 100 minimum: 0 type: integer resources: description: The resources being used to complete the work request operation. items: $ref: '#/components/schemas/WorkRequestResource' type: array status: description: The current status of the work request. enum: - ACCEPTED - IN_PROGRESS - FAILED - SUCCEEDED - CANCELING - CANCELED type: string x-obmcs-top-level-enum: '#/definitions/WorkRequestStatusValues' timeAccepted: description: The date and time the work request was created, expressed in RFC 3339 timestamp format. example: '2018-11-16T21:10:29Z' format: date-time type: string timeFinished: description: The date and time the work request was fulfilled or terminated, in the format defined by RFC3339. example: '2018-11-16T21:10:29Z' format: date-time type: string timeStarted: description: The date and time the work request moved from the `ACCEPTED` state to the `IN_PROGRESS` state, expressed in RFC 3339 timestamp format. example: '2018-11-16T21:10:29Z' format: date-time type: string required: - id - compartmentId - status - timeAccepted - timeStarted - timeFinished - operationType type: object WaasPolicySummary: description: 'Summary information about a WAAS policy. **Warning:** Oracle recommends that you avoid using any confidential information when you supply string values using the API.' properties: compartmentId: description: The [OCID](/Content/General/Concepts/identifiers.htm) of the WAAS policy's compartment. maxLength: 255 minLength: 1 type: string definedTags: additionalProperties: additionalProperties: description: 'The value of the tag. Only the String type is supported. ' type: object description: 'Key-value pair representing a defined tag key and value, scoped to a namespace. Example: `{"CostCenter": "42"}` ' type: object description: 'Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see [Resource Tags](/Content/General/Concepts/resourcetags.htm). Example: `{"Operations": {"CostCenter": "42"}}` ' type: object displayName: description: The user-friendly name of the WAAS policy. The name can be changed and does not need to be unique. maxLength: 255 minLength: 1 type: string domain: description: The web application domain that the WAAS policy protects. type: string freeformTags: additionalProperties: type: string x-isnullable: true description: 'Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see [Resource Tags](/Content/General/Concepts/resourcetags.htm). Example: `{"Department": "Finance"}` ' type: object id: description: The [OCID](/Content/General/Concepts/identifiers.htm) of the WAAS policy. maxLength: 255 minLength: 1 type: string lifecycleState: description: The current lifecycle state of the WAAS policy. enum: - CREATING - ACTIVE - FAILED - UPDATING - DELETING - DELETED type: string x-obmcs-top-level-enum: '#/definitions/LifecycleStates' timeCreated: description: The date and time the policy was created, expressed in RFC 3339 timestamp format. example: '2018-11-16T21:10:29Z' format: date-time type: string type: object ChangeAddressListCompartmentDetails: properties: compartmentId: description: 'The [OCID](/Content/General/Concepts/identifiers.htm) of the compartment into which the resource should be moved. For information about moving resources between compartments, see [Moving Resources to a Different Compartment](/iaas/Content/Identity/Tasks/managingcompartments.htm#moveRes). ' maxLength: 255 minLength: 1 type: string required: - compartmentId type: object WafConfigDetails: description: The Web Application Firewall configuration for the WAAS policy creation. properties: accessRules: description: The access rules applied to the Web Application Firewall. Access rules allow custom content access policies to be defined and `ALLOW`, `DETECT`, or `BLOCK` actions to be taken on a request when specified criteria are met. items: $ref: '#/components/schemas/AccessRule' maxItems: 100 type: array addressRateLimiting: $ref: '#/components/schemas/AddressRateLimiting' description: The settings used to limit the number of requests from an IP address. cachingRules: description: A list of caching rules applied to the web application. items: $ref: '#/components/schemas/CachingRule' type: array captchas: description: A list of CAPTCHA challenge settings. CAPTCHAs challenge requests to ensure a human is attempting to reach the specified URL and not a bot. items: $ref: '#/components/schemas/Captcha' type: array customProtectionRules: description: A list of the custom protection rule OCIDs and their actions. items: $ref: '#/components/schemas/CustomProtectionRuleSetting' type: array deviceFingerprintChallenge: $ref: '#/components/schemas/DeviceFingerprintChallenge' description: The device fingerprint challenge settings. Blocks bots based on unique device fingerprint information. humanInteractionChallenge: $ref: '#/components/schemas/HumanInteractionChallenge' description: The human interaction challenge settings. Detects natural human interactions such as mouse movements, time on site, and page scrolling to identify bots. jsChallenge: $ref: '#/components/schemas/JsChallenge' description: The JavaScript challenge settings. Blocks bots by challenging requests from browsers that have no JavaScript support. origin: description: The key in the map of origins referencing the origin used for the Web Application Firewall. The origin must already be included in `Origins`. Required when creating the `WafConfig` resource, but is not required upon updating the configuration. type: string originGroups: description: 'The map of origin groups and their keys used to associate origins to the `wafConfig`. Origin groups allow you to apply weights to groups of origins for load balancing purposes. Origins with higher weights will receive larger proportions of client requests. To add additional origins to your WAAS policy, update the `origins` field of a `UpdateWaasPolicy` request.' items: type: string type: array protectionSettings: $ref: '#/components/schemas/ProtectionSettings' description: The settings applied to protection rules. whitelists: description: A list of IP addresses that bypass the Web Application Firewall. items: $ref: '#/components/schemas/Whitelist' type: array type: object CachingRuleCriteria: description: A caching rule criteria condition and value. properties: condition: description: 'The condition of the caching rule criteria. - **URL_IS:** Matches if the concatenation of request URL path and query is identical to the contents of the `value` field. - **URL_STARTS_WITH:** Matches if the concatenation of request URL path and query starts with the contents of the `value` field. - **URL_PART_ENDS_WITH:** Matches if the concatenation of request URL path and query ends with the contents of the `value` field. - **URL_PART_CONTAINS:** Matches if the concatenation of request URL path and query contains the contents of the `value` field. URLs must start with a `/`. URLs can''t contain restricted double slashes `//`. URLs can''t contain the restricted `''` `&` `?` symbols. Resources to cache can only be specified by a URL, any query parameters are ignored.' enum: - URL_IS - URL_STARTS_WITH - URL_PART_ENDS_WITH - URL_PART_CONTAINS type: string x-isnullable: true value: description: The value of the caching rule criteria. type: string x-isnullable: true required: - condition - value type: object OriginGroup: properties: origins: description: The list of objects containing origin references and additional properties. items: properties: origin: description: The IP address or CIDR notation of the origin server. type: string weight: default: 1 description: The weight of the origin used in load balancing. Origins with higher weights will receive larger proportions of client requests. maximum: 9999 minimum: 1 type: integer type: object type: array type: object Whitelist: description: An array of IP addresses that bypass the Web Application Firewall. Supports both single IP addresses or subnet masks (CIDR notation). properties: addressLists: default: [] description: A list of [OCID](/Content/General/Concepts/identifiers.htm) of IP address lists to include in the whitelist. items: example: ocid1.waasaddresslist.oc1..aaaaaaaaci2cgqlpufxqttsogap6d2vevfwnqooqcqqia4v63xaccoesqqva maxLength: 255 minLength: 1 type: string type: array x-isnullable: true addresses: description: A set of IP addresses or CIDR notations to include in the whitelist. items: description: An IP address or CIDR notation describing a subnet. maxLength: 49 type: string x-isnullable: true type: array name: description: The unique name of the whitelist. maxLength: 50 minLength: 1 type: string x-isnullable: true required: - name type: object Origin: description: A detailed description of your web application's origin host server. An origin must be defined to set up WAF rules. properties: customHeaders: description: A list of HTTP headers to forward to your origin. items: $ref: '#/components/schemas/Header' type: array httpPort: description: The HTTP port on the origin that the web application listens on. If unspecified, defaults to `80`. If `0` is specified - the origin is not used for HTTP traffic. format: int32 maximum: 65535 minimum: 0 type: integer x-isnullable: true httpsPort: description: The HTTPS port on the origin that the web application listens on. If unspecified, defaults to `443`. If `0` is specified - the origin is not used for HTTPS traffic. format: int32 maximum: 65535 minimum: 0 type: integer x-isnullable: true uri: description: The URI of the origin. Does not support paths. Port numbers should be specified in the `httpPort` and `httpsPort` fields. maxLength: 512 type: string required: - uri type: object PurgeCache: description: The list of cached resources to purge. If a resource is not specified, the purge targets all rules in a policy. properties: resources: description: 'A resource to purge, specified by either a hostless absolute path starting with a single slash (Example: `/path/to/resource`) or by a relative path in which the first component will be interpreted as a domain protected by the WAAS policy (Example: `example.com/path/to/resource`).' items: type: string type: array type: object ProtectionRuleExclusion: description: "Allows specified types of requests to bypass the protection rule. If a request matches any of the criteria in the `exclusions` field, the protection rule will not be executed. Rules can have more than one exclusion and exclusions are applied to requests disjunctively, meaning the specified exclusion strings are independently matched against the specified targets of a request. The first target to match a specified string will trigger an exclusion. **Example:** If the following exclusions are defined for a protection rule:\n\n \"action\": \"BLOCK\",\n \"exclusions\": [\n {\n \"target\":\"REQUEST_COOKIES\",\n \"exclusions\":[\"example.com\", \"12345\", \"219ffwef9w0f\"]\n },\n {\n \"target\":\"REQUEST_COOKIE_NAMES\",\n \"exclusions\":[\"OAMAuthnCookie\", \"JSESSIONID\", \"HCM-PSJSESSIONID\"]\n }\n ],\n \"key\": \"1000000\",\n\nA request with the cookie name `sessionid` would trigger an exclusion. A request with the cookie name `yourcompany.com` would *not* trigger and exclusion." properties: exclusions: items: description: 'The target property of a request that would allow it to bypass the protection rule. For example, when `target` is `REQUEST_COOKIE_NAMES`, the list may include names of cookies to exclude from the protection rule. When the target is `ARGS`, the list may include strings of URL query parameters and values from form-urlencoded XML, JSON, AMP, or POST payloads to exclude from the protection rule. `Exclusions` properties must not contain whitespace, comma or |. **Note:** If protection rules have been enabled that utilize the `maxArgumentCount` or `maxTotalNameLengthOfArguments` properties, and the `target` property has been set to `ARGS`, it is important that the `exclusions` properties be defined to honor those protection rule settings in a consistent manner.' maxLength: 5000 minLength: 1 type: string x-isnullable: true type: array target: description: The target of the exclusion. enum: - REQUEST_COOKIES - REQUEST_COOKIE_NAMES - ARGS - ARGS_NAMES type: string x-is-nullable: true type: object HumanInteractionChallenge: description: The human interaction challenge settings. The human interaction challenge checks various event listeners in the user's browser to determine if there is a human user making a request. properties: action: description: The action to take against requests from detected bots. If unspecified, defaults to `DETECT`. enum: - DETECT - BLOCK type: string x-isnullable: true actionExpirationInSeconds: description: The number of seconds between challenges for the same IP address. If unspecified, defaults to `60`. maximum: 432000 minimum: 1 type: integer x-isnullable: true challengeSettings: $ref: '#/components/schemas/BlockChallengeSettings' failureThreshold: description: The number of failed requests before taking action. If unspecified, defaults to `10`. maximum: 999999 minimum: 1 type: integer x-isnullable: true failureThresholdExpirationInSeconds: description: The number of seconds before the failure threshold resets. If unspecified, defaults to `60`. maximum: 432000 minimum: 1 type: integer x-isnullable: true interactionThreshold: description: The number of interactions required to pass the challenge. If unspecified, defaults to `3`. maximum: 99 minimum: 1 type: integer x-isnullable: true isEnabled: description: Enables or disables the human interaction challenge Web Application Firewall feature. type: boolean isNatEnabled: default: true description: When enabled, the user is identified not only by the IP address but also by an unique additional hash, which prevents blocking visitors with shared IP addresses. type: boolean recordingPeriodInSeconds: description: The number of seconds to record the interactions from the user. If unspecified, defaults to `15`. maximum: 14400 minimum: 1 type: integer x-isnullable: true setHttpHeader: $ref: '#/components/schemas/Header' description: Adds an additional HTTP header to requests that fail the challenge before being passed to the origin. Only applicable when the `action` is set to `DETECT`. required: - isEnabled type: object WafTrafficDatum: description: A time series of traffic data for the Web Application Firewall configured for a policy. properties: compartmentId: description: The compartment OCID of the data. type: string tenancyId: description: The tenancy OCID of the data. type: string timeObserved: description: The date and time the traffic was observed, rounded down to the start of the range, and expressed in RFC 3339 timestamp format. example: '2018-11-16T21:10:29Z' format: date-time type: string x-isnullable: true timeRangeInSeconds: description: The number of seconds this data covers. example: 300 type: integer x-isnullable: true trafficInBytes: description: Traffic in bytes. type: integer x-isnullable: true waasPolicyId: description: The policy OCID of the data. type: string type: object Header: description: An HTTP header with name and value. properties: name: description: The name of the header. maxLength: 255 minLength: 1 type: string value: description: The value of the header. maxLength: 5000 minLength: 1 type: string required: - name - value type: object CreateWaasPolicyDetails: description: 'The required data to create a WAAS policy. **Warning:** Oracle recommends that you avoid using any confidential information when you supply string values using the API.' properties: additionalDomains: description: An array of additional domains for the specified web application. items: type: string type: array compartmentId: description: The [OCID](/Content/General/Concepts/identifiers.htm) of the compartment in which to create the WAAS policy. maxLength: 255 minLength: 1 type: string definedTags: additionalProperties: additionalProperties: description: 'The value of the tag. Only the String type is supported. ' type: object description: 'Key-value pair representing a defined tag key and value, scoped to a namespace. Example: `{"CostCenter": "42"}` ' type: object description: 'Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see [Resource Tags](/Content/General/Concepts/resourcetags.htm). Example: `{"Operations": {"CostCenter": "42"}}` ' type: object displayName: description: A user-friendly name for the WAAS policy. The name can be changed and does not need to be unique. maxLength: 255 minLength: 1 type: string domain: description: The web application domain that the WAAS policy protects. type: string freeformTags: additionalProperties: type: string x-isnullable: true description: 'Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see [Resource Tags](/Content/General/Concepts/resourcetags.htm). Example: `{"Department": "Finance"}` ' type: object originGroups: additionalProperties: $ref: '#/components/schemas/OriginGroup' description: 'The map of origin groups and their keys used to associate origins to the `wafConfig`. Origin groups allow you to apply weights to groups of origins for load balancing purposes. Origins with higher weights will receive larger proportions of client requests. To add additional origins to your WAAS policy, update the `origins` field of a `UpdateWaasPolicy` request.' type: object x-example: application/json: "{\n \"originGroup1\": {\n \"origins\": [{\n \"origin\": \"origin1\",\n \"weight\": 2\n },\n {\n \"origin\": \"origin2\",\n \"weight\": 1\n }]\n },\n \"originGroup2\": {\n \"origins\": [{\n \"origin\": \"origin3\",\n \"weight\": 1\n },\n {\n \"origin\": \"origin4\",\n \"weight\": 1\n }]\n }\n}\n" origins: additionalProperties: $ref: '#/components/schemas/Origin' description: A map of host to origin for the web application. The key should be a customer friendly name for the host, ex. primary, secondary, etc. example: application/json: "{\n \"primary\": {\n \"uri\": \"192.0.2.1\",\n \"httpPort\": 80,\n \"httpsPort\": 443\n }\n}\n" type: object policyConfig: $ref: '#/components/schemas/PolicyConfig' wafConfig: $ref: '#/components/schemas/WafConfigDetails' required: - compartmentId - domain type: object CreateAddressListDetails: description: The data used to create a new address list of IP addresses and CIDR notations. properties: addresses: description: A list of IP addresses or CIDR notations. items: type: string type: array compartmentId: description: The [OCID](/Content/General/Concepts/identifiers.htm) of the compartment in which to create the address list. maxLength: 255 minLength: 1 type: string definedTags: additionalProperties: additionalProperties: description: 'The value of the tag. Only the String type is supported. ' type: object description: 'Key-value pair representing a defined tag key and value, scoped to a namespace. Example: `{"CostCenter": "42"}` ' type: object description: 'Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see [Resource Tags](/Content/General/Concepts/resourcetags.htm). Example: `{"Operations": {"CostCenter": "42"}}` ' type: object displayName: description: A user-friendly name for the address list. maxLength: 255 minLength: 1 type: string freeformTags: additionalProperties: type: string x-isnullable: true description: 'Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see [Resource Tags](/Content/General/Concepts/resourcetags.htm). Example: `{"Department": "Finance"}` ' type: object required: - compartmentId - displayName - addresses type: object GoodBot: description: The good bot settings. Good bots provides a list of bots which are managed by known providers. properties: description: description: The description of the bot. type: string x-isnullable: true isEnabled: description: Enables or disables the bot. type: boolean key: description: The unique key for the bot. type: string name: description: The bot name. maxLength: 255 minLength: 1 type: string x-isnullable: true required: - key - isEnabled type: object ChangeCustomProtectionRuleCompartmentDetails: properties: compartmentId: description: 'The [OCID](/Content/General/Concepts/identifiers.htm) of the compartment into which the resource should be moved. For information about moving resources between compartments, see [Moving Resources to a Different Compartment](/iaas/Content/Identity/Tasks/managingcompartments.htm#moveRes). ' maxLength: 255 minLength: 1 type: string required: - compartmentId type: object WaasPolicyCustomProtectionRuleSummary: description: The OCID and action of a custom protection rule. properties: action: description: 'The action to take when the custom protection rule is triggered. `DETECT` - Logs the request when the criteria of the custom protection rule are met. `BLOCK` - Blocks the request when the criteria of the custom protection rule are met.' enum: - DETECT - BLOCK type: string displayName: description: The user-friendly name of the custom protection rule. maxLength: 255 minLength: 1 type: string exclusions: items: $ref: '#/components/schemas/ProtectionRuleExclusion' type: array id: description: The [OCID](/Content/General/Concepts/identifiers.htm) of the custom protection rule. maxLength: 255 minLength: 1 type: string modSecurityRuleIds: description: The list of the ModSecurity rule IDs that apply to this protection rule. For more information about ModSecurity's open source WAF rules, see [Mod Security's documentation](https://www.modsecurity.org/CRS/Documentation/index.html). items: type: string type: array type: object CreateCertificateDetails: description: 'The data used to create a new SSL certificate. **Warning:** Oracle recommends that you avoid using any confidential information when you supply string values using the API.' properties: certificateData: description: 'The data of the SSL certificate. **Note:** Many SSL certificate providers require an intermediate certificate chain to ensure a trusted status. If your SSL certificate requires an intermediate certificate chain, please append the intermediate certificate key in the `certificateData` field after the leaf certificate issued by the SSL certificate provider. If you are unsure if your certificate requires an intermediate certificate chain, see your certificate provider''s documentation. The example below shows an intermediate certificate appended to a leaf certificate. ' example: '-----BEGIN CERTIFICATE----- VGhlIGxlYWYgY2VydGlmaWNhdGUgZm9yIG15IGFwcGxpY2F0aW9uLgo= -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- VGhlIGludGVybWVkaWF0ZSBjZXJ0aWZpY2F0ZXMgdGhhdCBsaW5rIG15IGNlcnRpZmljYXRlIGJh Y2sgdG8gYSB0cnVzdGVkIHJvb3QuCg== -----END CERTIFICATE----- ' type: string compartmentId: description: The [OCID](/Content/General/Concepts/identifiers.htm) of the compartment in which to create the SSL certificate. maxLength: 255 minLength: 1 type: string definedTags: additionalProperties: additionalProperties: description: 'The value of the tag. Only the String type is supported. ' type: object description: 'Key-value pair representing a defined tag key and value, scoped to a namespace. Example: `{"CostCenter": "42"}` ' type: object description: 'Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see [Resource Tags](/Content/General/Concepts/resourcetags.htm). Example: `{"Operations": {"CostCenter": "42"}}` ' type: object displayName: description: A user-friendly name for the SSL certificate. The name can be changed and does not need to be unique. maxLength: 255 minLength: 1 type: string freeformTags: additionalProperties: type: string x-isnullable: true description: 'Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see [Resource Tags](/Content/General/Concepts/resourcetags.htm). Example: `{"Department": "Finance"}` ' type: object isTrustVerificationDisabled: default: false description: Set to `true` if the SSL certificate is self-signed. type: boolean privateKeyData: description: The private key of the SSL certificate. example: '-----BEGIN PRIVATE KEY----- AbcDe12456...AbcDe12456== -----END PRIVATE KEY----- ' type: string required: - certificateData - privateKeyData - compartmentId type: object JsChallenge: description: The JavaScript challenge settings. JavaScript Challenge is the function to filter abnormal or malicious bots and allow access to real clients. properties: action: description: The action to take against requests from detected bots. If unspecified, defaults to `DETECT`. enum: - DETECT - BLOCK type: string x-isnullable: true actionExpirationInSeconds: description: The number of seconds between challenges from the same IP address. If unspecified, defaults to `60`. maximum: 432000 minimum: 1 type: integer x-isnullable: true areRedirectsChallenged: default: true description: When enabled, redirect responses from the origin will also be challenged. This will change HTTP 301/302 responses from origin to HTTP 200 with an HTML body containing JavaScript page redirection. type: boolean challengeSettings: $ref: '#/components/schemas/BlockChallengeSettings' criteria: description: When defined, the JavaScript Challenge would be applied only for the requests that matched all the listed conditions. items: $ref: '#/components/schemas/AccessRuleCriteria' type: array x-isnullable: true failureThreshold: description: The number of failed requests before taking action. If unspecified, defaults to `10`. maximum: 999999 minimum: 1 type: integer x-isnullable: true isEnabled: description: Enables or disables the JavaScript challenge Web Application Firewall feature. type: boolean isNatEnabled: default: true description: When enabled, the user is identified not only by the IP address but also by an unique additional hash, which prevents blocking visitors with shared IP addresses. type: boolean setHttpHeader: $ref: '#/components/schemas/Header' description: Adds an additional HTTP header to requests that fail the challenge before being passed to the origin. Only applicable when the `action` is set to `DETECT`. required: - isEnabled type: object CustomProtectionRule: description: The details of a custom protection rule. properties: compartmentId: description: The [OCID](/Content/General/Concepts/identifiers.htm) of the custom protection rule's compartment. maxLength: 255 minLength: 1 type: string definedTags: additionalProperties: additionalProperties: description: 'The value of the tag. Only the String type is supported. ' type: object description: 'Key-value pair representing a defined tag key and value, scoped to a namespace. Example: `{"CostCenter": "42"}` ' type: object description: 'Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see [Resource Tags](/Content/General/Concepts/resourcetags.htm). Example: `{"Operations": {"CostCenter": "42"}}` ' type: object description: description: The description of the custom protection rule. maxLength: 400 minLength: 1 type: string displayName: description: The user-friendly name of the custom protection rule. maxLength: 255 minLength: 1 type: string freeformTags: additionalProperties: type: string x-isnullable: true description: 'Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see [Resource Tags](/Content/General/Concepts/resourcetags.htm). Example: `{"Department": "Finance"}` ' type: object id: description: The [OCID](/Content/General/Concepts/identifiers.htm) of the custom protection rule. maxLength: 255 minLength: 1 type: string lifecycleState: description: The current lifecycle state of the custom protection rule. enum: - CREATING - ACTIVE - FAILED - UPDATING - DELETING - DELETED type: string x-obmcs-top-level-enum: '#/definitions/LifecycleStates' modSecurityRuleIds: description: The auto-generated ID for the custom protection rule. These IDs are referenced in logs. items: type: string type: array template: description: "The template text of the custom protection rule. All custom protection rules are expressed in ModSecurity Rule Language.\n\nAdditionally, each rule must include two placeholder variables that are updated by the WAF service upon publication of the rule.\n\n`id: {{id_1}}` - This field is populated with a unique rule ID generated by the WAF service which identifies a `SecRule`. More than one `SecRule` can be defined in the `template` field of a CreateCustomSecurityRule call. The value of the first `SecRule` must be `id: {{id_1}}` and the `id` field of each subsequent `SecRule` should increase by one, as shown in the example.\n\n`ctl:ruleEngine={{mode}}` - The action to be taken when the criteria of the `SecRule` are met, either `OFF`, `DETECT` or `BLOCK`. This field is automatically populated with the corresponding value of the `action` field of the `CustomProtectionRuleSetting` schema when the `WafConfig` is updated.\n\n*Example:*\n ```\n SecRule REQUEST_COOKIES \"regex matching SQL injection - part 1/2\" \\\n \"phase:2, \\\n msg:'Detects chained SQL injection attempts 1/2.', \\\n id: {{id_1}}, \\\n ctl:ruleEngine={{mode}}, \\\n deny\"\n SecRule REQUEST_COOKIES \"regex matching SQL injection - part 2/2\" \\\n \"phase:2, \\\n msg:'Detects chained SQL injection attempts 2/2.', \\\n id: {{id_2}}, \\\n ctl:ruleEngine={{mode}}, \\\n deny\"\n ```\n\n\nThe example contains two `SecRules` each having distinct regex expression to match the `Cookie` header value during the second input analysis phase.\n\nFor more information about custom protection rules, see [Custom Protection Rules](/Content/WAF/Tasks/customprotectionrules.htm).\n\nFor more information about ModSecurity syntax, see [Making Rules: The Basic Syntax](https://www.modsecurity.org/CRS/Documentation/making.html).\n\nFor more information about ModSecurity's open source WAF rules, see [Mod Security's OWASP Core Rule Set documentation](https://www.modsecurity.org/CRS/Documentation/index.html)." maxLength: 5000 minLength: 1 type: string timeCreated: description: The date and time the protection rule was created, expressed in RFC 3339 timestamp format. example: '2018-11-16T21:10:29Z' format: date-time type: string type: object PolicyConfig: description: The configuration details for the WAAS policy. properties: certificateId: description: The OCID of the SSL certificate to use if HTTPS is supported. maxLength: 255 minLength: 1 type: string x-isnullable: true cipherGroup: default: DEFAULT description: 'The set cipher group for the configured TLS protocol. This sets the configuration for the TLS connections between clients and edge nodes only. - **DEFAULT:** Cipher group supports TLS 1.0, TLS 1.1, TLS 1.2, TLS 1.3 protocols. It has the following ciphers enabled: `ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:!DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA`' enum: - DEFAULT type: string x-isnullable: true clientAddressHeader: description: 'Specifies an HTTP header name which is treated as the connecting client''s IP address. Applicable only if `isBehindCdn` is enabled. The edge node reads this header and its value and sets the client IP address as specified. It does not create the header if the header is not present in the request. If the header is not present, the connecting IP address will be used as the client''s true IP address. It uses the last IP address in the header''s value as the true IP address. Example: `X-Client-Ip: 11.1.1.1, 13.3.3.3` In the case of multiple headers with the same name, only the first header will be used. It is assumed that CDN sets the correct client IP address to prevent spoofing. - **X_FORWARDED_FOR:** Corresponds to `X-Forwarded-For` header name. - **X_CLIENT_IP:** Corresponds to `X-Client-Ip` header name. - **X_REAL_IP:** Corresponds to `X-Real-Ip` header name. - **CLIENT_IP:** Corresponds to `Client-Ip` header name. - **TRUE_CLIENT_IP:** Corresponds to `True-Client-Ip` header name.' enum: - X_FORWARDED_FOR - X_CLIENT_IP - X_REAL_IP - CLIENT_IP - TRUE_CLIENT_IP type: string x-default-description: 'null' x-isnullable: true healthChecks: $ref: '#/components/schemas/HealthCheck' x-isnullable: true isBehindCdn: default: false description: Enabling `isBehindCdn` allows for the collection of IP addresses from client requests if the WAF is connected to a CDN. type: boolean isCacheControlRespected: default: false description: 'Enable or disable automatic content caching based on the response `cache-control` header. This feature enables the origin to act as a proxy cache. Caching is usually defined using `cache-control` header. For example `cache-control: max-age=120` means that the returned resource is valid for 120 seconds. Caching rules will overwrite this setting.' type: boolean isHttpsEnabled: description: Enable or disable HTTPS support. If true, a `certificateId` is required. If unspecified, defaults to `false`. type: boolean x-isnullable: true isHttpsForced: description: Force HTTP to HTTPS redirection. If unspecified, defaults to `false`. type: boolean x-isnullable: true isOriginCompressionEnabled: default: true description: 'Enable or disable GZIP compression of origin responses. If enabled, the header `Accept-Encoding: gzip` is sent to origin, otherwise, the empty `Accept-Encoding:` header is used.' type: boolean isResponseBufferingEnabled: default: false description: Enable or disable buffering of responses from the origin. Buffering improves overall stability in case of network issues, but slightly increases Time To First Byte. type: boolean isSniEnabled: default: false description: SNI stands for Server Name Indication and is an extension of the TLS protocol. It indicates which hostname is being contacted by the browser at the beginning of the 'handshake'-process. This allows a server to connect multiple SSL Certificates to one IP address and port. type: boolean loadBalancingMethod: $ref: '#/components/schemas/LoadBalancingMethod' description: An object that represents a load balancing method and its properties. x-isnullable: true tlsProtocols: default: - TLS_V1_1 - TLS_V1_2 - TLS_V1_3 description: 'A list of allowed TLS protocols. Only applicable when HTTPS support is enabled. The TLS protocol is negotiated while the request is connecting and the most recent protocol supported by both the edge node and client browser will be selected. If no such version exists, the connection will be aborted. - **TLS_V1:** corresponds to TLS 1.0 specification. - **TLS_V1_1:** corresponds to TLS 1.1 specification. - **TLS_V1_2:** corresponds to TLS 1.2 specification. - **TLS_V1_3:** corresponds to TLS 1.3 specification. Enabled TLS protocols must go in a row. For example if `TLS_v1_1` and `TLS_V1_3` are enabled, `TLS_V1_2` must be enabled too.' items: enum: - TLS_V1 - TLS_V1_1 - TLS_V1_2 - TLS_V1_3 type: string type: array websocketPathPrefixes: default: [] description: ModSecurity is not capable to inspect WebSockets. Therefore paths specified here have WAF disabled if Connection request header from the client has the value Upgrade (case insensitive matching) and Upgrade request header has the value websocket (case insensitive matching). Paths matches if the concatenation of request URL path and query starts with the contents of the one of `websocketPathPrefixes` array value. In All other cases challenges, like JSC, HIC and etc., remain active. items: type: string type: array type: object WorkRequestLogEntry: description: A log message for a work request. properties: message: description: The log message. type: string timestamp: description: The date and time the work request log event happend, expressed in RFC 3339 timestamp format. example: '2018-11-16T21:10:29Z' format: date-time type: string type: object CustomProtectionRuleSummary: description: An overview of a custom protection rule. properties: compartmentId: description: The [OCID](/Content/General/Concepts/identifiers.htm) of the custom protection rule's compartment. maxLength: 255 minLength: 1 type: string definedTags: additionalProperties: additionalProperties: description: 'The value of the tag. Only the String type is supported. ' type: object description: 'Key-value pair representing a defined tag key and value, scoped to a namespace. Example: `{"CostCenter": "42"}` ' type: object description: 'Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see [Resource Tags](/Content/General/Concepts/resourcetags.htm). Example: `{"Operations": {"CostCenter": "42"}}` ' type: object displayName: description: The user-friendly name of the custom protection rule. maxLength: 255 minLength: 1 type: string freeformTags: additionalProperties: type: string x-isnullable: true description: 'Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see [Resource Tags](/Content/General/Concepts/resourcetags.htm). Example: `{"Department": "Finance"}` ' type: object id: description: The [OCID](/Content/General/Concepts/identifiers.htm) of the custom protection rule. maxLength: 255 minLength: 1 type: string lifecycleState: description: The current lifecycle state of the custom protection rule. enum: - CREATING - ACTIVE - FAILED - UPDATING - DELETING - DELETED type: string x-obmcs-top-level-enum: '#/definitions/LifecycleStates' modSecurityRuleIds: description: The auto-generated ID for the custom protection rule. These IDs are referenced in logs. items: type: string type: array timeCreated: description: The date and time the protection rule was created, expressed in RFC 3339 timestamp format. example: '2018-11-16T21:10:29Z' format: date-time type: string type: object WorkRequest: description: Many of the API requests you use to create and configure WAAS policies do not take effect immediately. In these cases, the request spawns an asynchronous work flow to fulfill the request. `WorkRequest` objects provide visibility for in-progress work flows. For more information about work requests, see [Viewing the State of a Work Request](/Content/Balance/Tasks/viewingworkrequest.htm). properties: compartmentId: description: The [OCID](/Content/General/Concepts/identifiers.htm) of the compartment that contains the work request. maxLength: 255 minLength: 1 type: string errors: description: The list of errors that occurred while fulfilling the work request. items: $ref: '#/components/schemas/WorkRequestError' type: array id: description: The [OCID](/Content/General/Concepts/identifiers.htm) of the work request. example: ocid.work-request.oc1.phx.abuxgljr6l4nepxjkmbtnibwqpu5z24xdvmr7okzoi47wicoflrxh32rwd7a maxLength: 255 minLength: 1 type: string logs: description: The list of log entries from the work request workflow. items: $ref: '#/components/schemas/WorkRequestLogEntry' type: array operationType: description: A description of the operation requested by the work request. enum: - CREATE_WAAS_POLICY - UPDATE_WAAS_POLICY - DELETE_WAAS_POLICY - CREATE_HTTP_REDIRECT - UPDATE_HTTP_REDIRECT - DELETE_HTTP_REDIRECT - PURGE_WAAS_POLICY_CACHE - CREATE_CUSTOM_PROTECTION_RULE - UPDATE_CUSTOM_PROTECTION_RULE - DELETE_CUSTOM_PROTECTION_RULE type: string x-obmcs-top-level-enum: '#/definitions/WorkRequestOperationTypes' percentComplete: description: The percentage of work completed by the work request. format: int32 maximum: 100 minimum: 0 type: integer resources: description: The resources being used to complete the work request operation. items: $ref: '#/components/schemas/WorkRequestResource' type: array status: description: The current status of the work request. enum: - ACCEPTED - IN_PROGRESS - FAILED - SUCCEEDED - CANCELING - CANCELED type: string x-obmcs-top-level-enum: '#/definitions/WorkRequestStatusValues' timeAccepted: description: The date and time the work request was created, in the format defined by RFC3339. example: '2018-11-16T21:10:29Z' format: date-time type: string timeFinished: description: The date and time the work request was fulfilled or terminated, expressed in RFC 3339 timestamp format. example: '2018-11-16T21:10:29Z' format: date-time type: string timeStarted: description: The date and time the work request moved from the `ACCEPTED` state to the `IN_PROGRESS` state, expressed in RFC 3339 timestamp format. example: '2018-11-16T21:10:29Z' format: date-time type: string required: - id - compartmentId - status - timeAccepted - timeStarted - timeFinished - operationType type: object BlockChallengeSettings: description: The challenge settings if `action` is set to `BLOCK`. properties: blockAction: description: The method used to block requests that fail the challenge, if `action` is set to `BLOCK`. If unspecified, defaults to `SHOW_ERROR_PAGE`. enum: - SET_RESPONSE_CODE - SHOW_ERROR_PAGE - SHOW_CAPTCHA type: string x-isnullable: true blockErrorPageCode: description: The error code to show on the error page when `action` is set to `BLOCK`, `blockAction` is set to `SHOW_ERROR_PAGE` and the request is blocked. If unspecified, defaults to `403`. maxLength: 5000 minLength: 1 type: string x-isnullable: true blockErrorPageDescription: description: The description text to show on the error page when `action` is set to `BLOCK`, `blockAction` is set to `SHOW_ERROR_PAGE`, and the request is blocked. If unspecified, defaults to `Access blocked by website owner. Please contact support.` maxLength: 5000 minLength: 1 type: string x-isnullable: true blockErrorPageMessage: description: The message to show on the error page when `action` is set to `BLOCK`, `blockAction` is set to `SHOW_ERROR_PAGE`, and the request is blocked. If unspecified, defaults to `Access to the website is blocked`. maxLength: 5000 minLength: 1 type: string x-isnullable: true blockResponseCode: description: 'The response status code to return when `action` is set to `BLOCK`, `blockAction` is set to `SET_RESPONSE_CODE` or `SHOW_ERROR_PAGE`, and the request is blocked. If unspecified, defaults to `403`. The list of available response codes: `200`, `201`, `202`, `204`, `206`, `300`, `301`, `302`, `303`, `304`, `307`, `400`, `401`, `403`, `404`, `405`, `408`, `409`, `411`, `412`, `413`, `414`, `415`, `416`, `422`, `444`, `494`, `495`, `496`, `497`, `499`, `500`, `501`, `502`, `503`, `504`, `507`.' maximum: 999 minimum: 100 type: integer x-isnullable: true captchaFooter: description: The text to show in the footer when showing a CAPTCHA challenge when `action` is set to `BLOCK`, `blockAction` is set to `SHOW_CAPTCHA`, and the request is blocked. If unspecified, default to `Enter the letters and numbers as they are shown in image above`. maxLength: 5000 minLength: 1 type: string x-isnullable: true captchaHeader: description: The text to show in the header when showing a CAPTCHA challenge when `action` is set to `BLOCK`, `blockAction` is set to `SHOW_CAPTCHA`, and the request is blocked. If unspecified, defaults to `We have detected an increased number of attempts to access this webapp. To help us keep this webapp secure, please let us know that you are not a robot by entering the text from captcha below.` maxLength: 5000 minLength: 1 type: string x-isnullable: true captchaSubmitLabel: description: The text to show on the label of the CAPTCHA challenge submit button when `action` is set to `BLOCK`, `blockAction` is set to `SHOW_CAPTCHA`, and the request is blocked. If unspecified, defaults to `Yes, I am human`. maxLength: 100 minLength: 1 type: string x-isnullable: true captchaTitle: description: The title used when showing a CAPTCHA challenge when `action` is set to `BLOCK`, `blockAction` is set to `SHOW_CAPTCHA`, and the request is blocked. If unspecified, defaults to `Are you human?` maxLength: 100 minLength: 1 type: string x-isnullable: true type: object ProtectionRule: description: The protection rule settings. Protection rules can allow, block, or trigger an alert if a request meets the parameters of an applied rule. properties: action: description: The action to take when the traffic is detected as malicious. If unspecified, defaults to `OFF`. enum: - 'OFF' - DETECT - BLOCK type: string x-isnullable: true description: description: The description of the protection rule. type: string x-isnullable: true exclusions: items: $ref: '#/components/schemas/ProtectionRuleExclusion' type: array key: description: The unique key of the protection rule. type: string labels: description: 'The list of labels for the protection rule. **Note:** Protection rules with a `ResponseBody` label will have no effect unless `isResponseInspected` is true.' items: type: string type: array x-isnullable: true modSecurityRuleIds: description: The list of the ModSecurity rule IDs that apply to this protection rule. For more information about ModSecurity's open source WAF rules, see [Mod Security's documentation](https://www.modsecurity.org/CRS/Documentation/index.html). items: type: string type: array name: description: The name of the protection rule. maxLength: 255 minLength: 1 type: string x-isnullable: true type: object WaasPolicy: description: 'The details of a Web Application Acceleration and Security (WAAS) policy. A policy describes how the WAAS service should operate for the configured web application. **Warning:** Oracle recommends that you avoid using any confidential information when you supply string values using the API.' properties: additionalDomains: description: An array of additional domains for this web application. items: type: string type: array cname: description: The CNAME record to add to your DNS configuration to route traffic for the domain, and all additional domains, through the WAF. type: string compartmentId: description: The [OCID](/Content/General/Concepts/identifiers.htm) of the WAAS policy's compartment. maxLength: 255 minLength: 1 type: string definedTags: additionalProperties: additionalProperties: description: 'The value of the tag. Only the String type is supported. ' type: object description: 'Key-value pair representing a defined tag key and value, scoped to a namespace. Example: `{"CostCenter": "42"}` ' type: object description: 'Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see [Resource Tags](/Content/General/Concepts/resourcetags.htm). Example: `{"Operations": {"CostCenter": "42"}}` ' type: object displayName: description: The user-friendly name of the WAAS policy. The name can be changed and does not need to be unique. maxLength: 255 minLength: 1 type: string domain: description: The web application domain that the WAAS policy protects. type: string freeformTags: additionalProperties: type: string x-isnullable: true description: 'Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see [Resource Tags](/Content/General/Concepts/resourcetags.htm). Example: `{"Department": "Finance"}` ' type: object id: description: The [OCID](/Content/General/Concepts/identifiers.htm) of the WAAS policy. maxLength: 255 minLength: 1 type: string lifecycleState: description: The current lifecycle state of the WAAS policy. enum: - CREATING - ACTIVE - FAILED - UPDATING - DELETING - DELETED type: string x-obmcs-top-level-enum: '#/definitions/LifecycleStates' originGroups: additionalProperties: $ref: '#/components/schemas/OriginGroup' description: The map of origin groups and their keys used to associate origins to the `wafConfig`. Origin groups allow you to apply weights to groups of origins for load balancing purposes. Origins with higher weights will receive larger proportions of client requests. type: object x-example: "application/json: |\n {\n \"originGroup1\": {\n \"origins\": [{\n \"origin\": \"origin1\",\n \"weight\": 2\n },\n {\n \"origin\": \"origin2\",\n \"weight\": 1\n }]\n },\n \"originGroup2\": {\n \"origins\": [{\n \"origin\": \"origin3\",\n \"weight\": 1\n },\n {\n \"origin\": \"origin4\",\n \"weight\": 1\n }]\n }\n }\n" origins: additionalProperties: $ref: '#/components/schemas/Origin' description: A map of host servers (origins) and their keys for the web application. Origin keys are used to associate origins to specific protection rules. The key should be a user-friendly name for the host. **Examples:** `primary` or `secondary`. type: object x-example: application/json: "{\n \"primary\": {\n \"uri\": \"192.0.2.1\",\n \"httpPort\": 80,\n \"httpsPort\": 443\n }\n}\n" policyConfig: $ref: '#/components/schemas/PolicyConfig' timeCreated: description: The date and time the policy was created, expressed in RFC 3339 timestamp format. example: '2018-11-16T21:10:29Z' format: date-time type: string wafConfig: $ref: '#/components/schemas/WafConfig' type: object EdgeSubnet: description: The details about an edge node subnet. properties: cidr: description: An edge node subnet. This can include /24 or /8 addresses. example: 192.0.2.0/24 type: string x-isnullable: true region: description: The name of the region containing the indicated subnet. example: US-Central type: string x-isnullable: true timeModified: description: The date and time the last change was made to the indicated edge node subnet, expressed in RFC 3339 timestamp format. example: '2018-11-16T21:10:29Z' format: date-time type: string x-isnullable: true type: object UpdateAddressListDetails: description: 'The data used to update the address list: IP addresses and CIDR notations.' properties: addresses: description: A list of IP addresses or CIDR notations. items: type: string type: array definedTags: additionalProperties: additionalProperties: description: 'The value of the tag. Only the String type is supported. ' type: object description: 'Key-value pair representing a defined tag key and value, scoped to a namespace. Example: `{"CostCenter": "42"}` ' type: object description: 'Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see [Resource Tags](/Content/General/Concepts/resourcetags.htm). Example: `{"Operations": {"CostCenter": "42"}}` ' type: object displayName: description: A user-friendly name for the address list. maxLength: 255 minLength: 1 type: string freeformTags: additionalProperties: type: string x-isnullable: true description: 'Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see [Resource Tags](/Content/General/Concepts/resourcetags.htm). Example: `{"Department": "Finance"}` ' type: object type: object WafBlockedRequest: properties: count: description: The count of blocked requests. type: integer x-isnullable: true timeObserved: description: The date and time the blocked requests were observed, expressed in RFC 3339 timestamp format. example: '2018-11-16T21:10:29Z' format: date-time type: string x-isnullable: true timeRangeInSeconds: description: The number of seconds the data covers. example: 300 type: integer x-isnullable: true wafFeature: description: The specific Web Application Firewall feature that blocked the requests, such as JavaScript Challenge or Access Control. enum: - PROTECTION_RULES - JS_CHALLENGE - ACCESS_RULES - THREAT_FEEDS - HUMAN_INTERACTION_CHALLENGE - DEVICE_FINGERPRINT_CHALLENGE - CAPTCHA - ADDRESS_RATE_LIMITING type: string x-isnullable: true type: object Certificate: description: 'The details of the SSL certificate. **Warning:** Oracle recommends that you avoid using any confidential information when you supply string values using the API.' properties: certificateData: description: The data of the SSL certificate. type: string compartmentId: description: The [OCID](/Content/General/Concepts/identifiers.htm) of the certificate's compartment. maxLength: 255 minLength: 1 type: string x-isnullable: false definedTags: additionalProperties: additionalProperties: description: 'The value of the tag. Only the String type is supported. ' type: object description: 'Key-value pair representing a defined tag key and value, scoped to a namespace. Example: `{"CostCenter": "42"}` ' type: object description: 'Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see [Resource Tags](/Content/General/Concepts/resourcetags.htm). Example: `{"Operations": {"CostCenter": "42"}}` ' type: object displayName: description: The user-friendly name of the certificate. maxLength: 255 minLength: 1 type: string x-isnullable: false extensions: description: Additional attributes associated with users or public keys for managing relationships between Certificate Authorities. items: properties: isCritical: description: The critical flag of the extension. Critical extensions must be processed, non-critical extensions can be ignored. type: boolean name: description: The certificate extension name. type: string value: description: The certificate extension value. type: string type: object type: array freeformTags: additionalProperties: type: string x-isnullable: true description: 'Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see [Resource Tags](/Content/General/Concepts/resourcetags.htm). Example: `{"Department": "Finance"}` ' type: object id: description: The [OCID](/Content/General/Concepts/identifiers.htm) of the certificate. maxLength: 255 minLength: 1 type: string x-isnullable: false isTrustVerificationDisabled: default: false description: 'This indicates whether trust verification was disabled during the creation of SSL certificate. If `true` SSL certificate trust verification was disabled and this SSL certificate is most likely self-signed. ' type: boolean issuedBy: type: string issuerName: $ref: '#/components/schemas/CertificateIssuerName' lifecycleState: description: The current lifecycle state of the SSL certificate. enum: - CREATING - ACTIVE - FAILED - UPDATING - DELETING - DELETED type: string x-obmcs-top-level-enum: '#/definitions/LifecycleStates' publicKeyInfo: description: Information about the public key and the algorithm used by the public key. properties: algorithm: description: The algorithm identifier and parameters for the public key. type: string exponent: description: The private key exponent. type: integer keySize: description: The number of bits in a key used by a cryptographic algorithm. type: integer type: object serialNumber: description: A unique, positive integer assigned by the Certificate Authority (CA). The issuer name and serial number identify a unique certificate. type: string x-isnullable: false signatureAlgorithm: description: The identifier for the cryptographic algorithm used by the Certificate Authority (CA) to sign this certificate. type: string x-isnullable: false subjectName: $ref: '#/components/schemas/CertificateSubjectName' timeCreated: description: The date and time the certificate was created, expressed in RFC 3339 timestamp format. example: '2018-11-16T21:10:29Z' format: date-time type: string timeNotValidAfter: description: The date and time the certificate will expire, expressed in RFC 3339 timestamp format. example: '2018-11-16T21:10:29Z' format: date-time type: string x-isnullable: false timeNotValidBefore: description: The date and time the certificate will become valid, expressed in RFC 3339 timestamp format. example: '2018-11-16T21:10:29Z' format: date-time type: string x-isnullable: false version: description: The version of the encoded certificate. type: integer x-isnullable: false required: - id - compartmentId - displayName - serialNumber - version - signatureAlgorithm - timeNotValidBefore - timeNotValidAfter - publicKeyInfo type: object UpdateCertificateDetails: description: 'The data used to create a new SSL certificate. **Warning:** Oracle recommends that you avoid using any confidential information when you supply string values using the API.' properties: definedTags: additionalProperties: additionalProperties: description: 'The value of the tag. Only the String type is supported. ' type: object description: 'Key-value pair representing a defined tag key and value, scoped to a namespace. Example: `{"CostCenter": "42"}` ' type: object description: 'Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see [Resource Tags](/Content/General/Concepts/resourcetags.htm). Example: `{"Operations": {"CostCenter": "42"}}` ' type: object displayName: description: A user-friendly name for the SSL certificate. The name can be changed and does not need to be unique. maxLength: 255 minLength: 1 type: string freeformTags: additionalProperties: type: string x-isnullable: true description: 'Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see [Resource Tags](/Content/General/Concepts/resourcetags.htm). Example: `{"Department": "Finance"}` ' type: object type: object AddressList: description: 'The details of the address list. ' properties: addressCount: description: The total number of unique IP addresses in the address list. type: number addresses: description: The list of IP addresses or CIDR notations. items: type: string type: array compartmentId: description: The [OCID](/Content/General/Concepts/identifiers.htm) of the address list's compartment. maxLength: 255 minLength: 1 type: string x-isnullable: false definedTags: additionalProperties: additionalProperties: description: 'The value of the tag. Only the String type is supported. ' type: object description: 'Key-value pair representing a defined tag key and value, scoped to a namespace. Example: `{"CostCenter": "42"}` ' type: object description: 'Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see [Resource Tags](/Content/General/Concepts/resourcetags.htm). Example: `{"Operations": {"CostCenter": "42"}}` ' type: object displayName: description: The user-friendly name of the address list. maxLength: 255 minLength: 1 type: string x-isnullable: false freeformTags: additionalProperties: type: string x-isnullable: true description: 'Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see [Resource Tags](/Content/General/Concepts/resourcetags.htm). Example: `{"Department": "Finance"}` ' type: object id: description: The [OCID](/Content/General/Concepts/identifiers.htm) of the address list. maxLength: 255 minLength: 1 type: string x-isnullable: false lifecycleState: description: The current lifecycle state of the address list. enum: - CREATING - ACTIVE - FAILED - UPDATING - DELETING - DELETED type: string x-obmcs-top-level-enum: '#/definitions/LifecycleStates' timeCreated: description: The date and time the address list was created, expressed in RFC 3339 timestamp format. example: '2018-11-16T21:10:29Z' format: date-time type: string type: object DeviceFingerprintChallenge: description: The device fingerprint challenge settings. The device fingerprint challenge generates hashed signatures of both virtual and real browsers to identify and block malicious bots. properties: action: description: The action to take on requests from detected bots. If unspecified, defaults to `DETECT`. enum: - DETECT - BLOCK type: string x-isnullable: true actionExpirationInSeconds: description: The number of seconds between challenges for the same IP address. If unspecified, defaults to `60`. maximum: 432000 minimum: 1 type: integer x-isnullable: true challengeSettings: $ref: '#/components/schemas/BlockChallengeSettings' failureThreshold: description: The number of failed requests allowed before taking action. If unspecified, defaults to `10`. maximum: 999999 minimum: 1 type: integer x-isnullable: true failureThresholdExpirationInSeconds: description: The number of seconds before the failure threshold resets. If unspecified, defaults to `60`. maximum: 432000 minimum: 1 type: integer x-isnullable: true isEnabled: description: Enables or disables the device fingerprint challenge Web Application Firewall feature. type: boolean maxAddressCount: description: The maximum number of IP addresses permitted with the same device fingerprint. If unspecified, defaults to `20`. maximum: 9999 minimum: 1 type: integer x-isnullable: true maxAddressCountExpirationInSeconds: description: The number of seconds before the maximum addresses count resets. If unspecified, defaults to `60`. maximum: 432000 minimum: 1 type: integer x-isnullable: true required: - isEnabled type: object WorkRequestResource: description: The resource on which the work request is operating. properties: actionType: description: How the work request affects the resource. enum: - IN_PROGRESS - CREATED - UPDATED - DELETED - RELATED - PURGED type: string entityType: description: The resource type the work request affects. type: string entityUri: description: The URI path used while performing a `GET` to access the resource metadata. type: string identifier: description: The [OCID](/Content/General/Concepts/identifiers.htm) of the resource that the work request affects. type: string type: object ThreatFeedAction: description: The action to take for a request that has been determined to be potentially malicious. properties: action: description: The selected action. If unspecified, defaults to `OFF`. enum: - 'OFF' - DETECT - BLOCK type: string x-isnullable: true key: description: The unique key of the object for which the action applies. type: string required: - key - action type: object HeaderManipulationAction: description: An object that represents an action to apply to an HTTP headers. discriminator: propertyName: action properties: action: enum: - EXTEND_HTTP_RESPONSE_HEADER - ADD_HTTP_RESPONSE_HEADER - REMOVE_HTTP_RESPONSE_HEADER type: string required: - action type: object x-example: "{\n \"action\": \"EXTEND_HTTP_RESPONSE_HEADER\",\n \"header\": \"example_header_name\",\n \"value\": \"example_value\"\n}\n" UpdateCustomProtectionRuleDetails: description: 'Updates the configuration details of a custom protection rule. Custom protection rules can only be updated if they are not active in a WAAS policy. **Warning:** Oracle recommends that you avoid using any confidential information when you supply string values using the API.' properties: definedTags: additionalProperties: additionalProperties: description: 'The value of the tag. Only the String type is supported. ' type: object description: 'Key-value pair representing a defined tag key and value, scoped to a namespace. Example: `{"CostCenter": "42"}` ' type: object description: 'Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see [Resource Tags](/Content/General/Concepts/resourcetags.htm). Example: `{"Operations": {"CostCenter": "42"}}` ' type: object description: description: A description for the custom protection rule. maxLength: 400 minLength: 1 type: string x-isnullable: true displayName: description: A user-friendly name for the custom protection rule. maxLength: 255 minLength: 1 type: string x-isnullable: true freeformTags: additionalProperties: type: string x-isnullable: true description: 'Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see [Resource Tags](/Content/General/Concepts/resourcetags.htm). Example: `{"Department": "Finance"}` ' type: object template: description: "The template text of the custom protection rule. All custom protection rules are expressed in ModSecurity Rule Language.\n\nAdditionally, each rule must include two placeholder variables that are updated by the WAF service upon publication of the rule.\n\n`id: {{id_1}}` - This field is populated with a unique rule ID generated by the WAF service which identifies a `SecRule`. More than one `SecRule` can be defined in the `template` field of a CreateCustomSecurityRule call. The value of the first `SecRule` must be `id: {{id_1}}` and the `id` field of each subsequent `SecRule` should increase by one, as shown in the example.\n\n`ctl:ruleEngine={{mode}}` - The action to be taken when the criteria of the `SecRule` are met, either `OFF`, `DETECT` or `BLOCK`. This field is automatically populated with the corresponding value of the `action` field of the `CustomProtectionRuleSetting` schema when the `WafConfig` is updated.\n\n*Example:*\n ```\n SecRule REQUEST_COOKIES \"regex matching SQL injection - part 1/2\" \\\n \"phase:2, \\\n msg:'Detects chained SQL injection attempts 1/2.', \\\n id: {{id_1}}, \\\n ctl:ruleEngine={{mode}}, \\\n deny\"\n SecRule REQUEST_COOKIES \"regex matching SQL injection - part 2/2\" \\\n \"phase:2, \\\n msg:'Detects chained SQL injection attempts 2/2.', \\\n id: {{id_2}}, \\\n ctl:ruleEngine={{mode}}, \\\n deny\"\n ```\n\n\nThe example contains two `SecRules` each having distinct regex expression to match the `Cookie` header value during the second input analysis phase.\n\nFor more information about custom protection rules, see [Custom Protection Rules](/Content/WAF/Tasks/customprotectionrules.htm).\n\nFor more information about ModSecurity syntax, see [Making Rules: The Basic Syntax](https://www.modsecurity.org/CRS/Documentation/making.html).\n\nFor more information about ModSecurity's open source WAF rules, see [Mod Security's OWASP Core Rule Set documentation](https://www.modsecurity.org/CRS/Documentation/index.html)." maxLength: 5000 minLength: 1 type: string x-isnullable: true type: object LoadBalancingMethod: discriminator: propertyName: method properties: method: description: 'Load balancing methods are algorithms used to efficiently distribute traffic among origin servers. - **[IP_HASH](/iaas/api/#/en/waas/latest/datatypes/IPHashLoadBalancingMethod):** All the incoming requests from the same client IP address should go to the same content origination server. IP_HASH load balancing method uses origin weights when choosing which origin should the hash be assigned to initially. - **[ROUND_ROBIN](/iaas/api/#/en/waas/latest/datatypes/RoundRobinLoadBalancingMethod):** Forwards requests sequentially to the available origin servers. The first request - to the first origin server, the second request - to the next origin server, and so on. After it sends a request to the last origin server, it starts again with the first origin server. When using weights on origins, Weighted Round Robin assigns more requests to origins with a greater weight. Over a period of time, origins will receive a number of requests in proportion to their weight. - **[STICKY_COOKIE](/iaas/api/#/en/waas/latest/datatypes/StickyCookieLoadBalancingMethod):** Adds a session cookie to the first response from the origin server and identifies the server that sent the response. The client''s next request contains the cookie value, and nginx routes the request to the origin server that responded to the first request. STICKY_COOKIE load balancing method falls back to Round Robin for the first request.' enum: - IP_HASH - ROUND_ROBIN - STICKY_COOKIE type: string x-default-description: IP_HASH required: - method type: object WorkRequestError: description: An object returned in the event of a work request error. properties: code: description: A machine-usable code for the error that occurred. type: string message: description: The error message. type: string timestamp: description: The date and time the work request error happened, expressed in RFC 3339 timestamp format. example: '2018-11-16T21:10:29Z' format: date-time type: string type: object ProtectionRuleAction: description: A protection rule key and the associated action to apply to that rule. properties: action: description: The action to apply to the protection rule. If unspecified, defaults to `OFF`. enum: - 'OFF' - DETECT - BLOCK type: string exclusions: description: The types of requests excluded from the protection rule action. If the requests matches the criteria in the `exclusions`, the protection rule action will not be executed. items: $ref: '#/components/schemas/ProtectionRuleExclusion' type: array key: description: The unique key of the protection rule. type: string required: - key - action type: object WafRequest: description: A time series of request counts handled by the Web Application Firewall, including blocked requests. properties: count: description: The total number of requests received in this time period. type: integer x-isnullable: true timeObserved: description: The date and time the traffic was observed, rounded down to the start of a range, and expressed in RFC 3339 timestamp format. example: '2018-11-16T21:10:29Z' format: date-time type: string x-isnullable: true timeRangeInSeconds: description: The number of seconds this data covers. example: 300 type: integer x-isnullable: true type: object CertificateIssuerName: description: The issuer of the certificate. properties: commonName: description: The Certificate Authority (CA) name. type: string country: description: ISO 3166-1 alpha-2 code of the country where the organization is located. For a list of codes, see [ISO's website](https://www.iso.org/obp/ui/#search/code/). type: string emailAddress: description: The email address of the server's administrator. type: string locality: description: The city in which the organization is located. type: string organization: description: The organization name. type: string organizationalUnit: description: The field to differentiate between divisions within an organization. type: string stateProvince: description: The province where the organization is located. type: string type: object AccessRule: description: A content access rule. An access rule specifies an action to take if a set of criteria is matched by a request. properties: action: description: 'The action to take when the access criteria are met for a rule. If unspecified, defaults to `ALLOW`. - **ALLOW:** Takes no action, just logs the request. - **DETECT:** Takes no action, but creates an alert for the request. - **BLOCK:** Blocks the request by returning specified response code or showing error page. - **BYPASS:** Bypasses some or all challenges. - **REDIRECT:** Redirects the request to the specified URL. These fields are required when `REDIRECT` is selected: `redirectUrl`, `redirectResponseCode`. - **SHOW_CAPTCHA:** Show a CAPTCHA Challenge page instead of the requested page. Regardless of action, no further rules are processed once a rule is matched.' enum: - ALLOW - DETECT - BLOCK - BYPASS - REDIRECT - SHOW_CAPTCHA type: string x-isnullable: true blockAction: description: The method used to block requests if `action` is set to `BLOCK` and the access criteria are met. If unspecified, defaults to `SET_RESPONSE_CODE`. enum: - SET_RESPONSE_CODE - SHOW_ERROR_PAGE type: string x-isnullable: true blockErrorPageCode: description: The error code to show on the error page when `action` is set to `BLOCK`, `blockAction` is set to `SHOW_ERROR_PAGE`, and the access criteria are met. If unspecified, defaults to 'Access rules'. maxLength: 5000 minLength: 1 type: string x-isnullable: true blockErrorPageDescription: description: The description text to show on the error page when `action` is set to `BLOCK`, `blockAction` is set to `SHOW_ERROR_PAGE`, and the access criteria are met. If unspecified, defaults to 'Access blocked by website owner. Please contact support.' maxLength: 5000 minLength: 1 type: string x-isnullable: true blockErrorPageMessage: description: The message to show on the error page when `action` is set to `BLOCK`, `blockAction` is set to `SHOW_ERROR_PAGE`, and the access criteria are met. If unspecified, defaults to 'Access to the website is blocked.' maxLength: 5000 minLength: 1 type: string x-isnullable: true blockResponseCode: description: 'The response status code to return when `action` is set to `BLOCK`, `blockAction` is set to `SET_RESPONSE_CODE`, and the access criteria are met. If unspecified, defaults to `403`. The list of available response codes: `200`, `201`, `202`, `204`, `206`, `300`, `301`, `302`, `303`, `304`, `307`, `400`, `401`, `403`, `404`, `405`, `408`, `409`, `411`, `412`, `413`, `414`, `415`, `416`, `422`, `444`, `494`, `495`, `496`, `497`, `499`, `500`, `501`, `502`, `503`, `504`, `507`.' maximum: 999 minimum: 100 type: integer x-isnullable: true bypassChallenges: description: 'The list of challenges to bypass when `action` is set to `BYPASS`. If unspecified or empty, all challenges are bypassed. - **JS_CHALLENGE:** Bypasses JavaScript Challenge. - **DEVICE_FINGERPRINT_CHALLENGE:** Bypasses Device Fingerprint Challenge. - **HUMAN_INTERACTION_CHALLENGE:** Bypasses Human Interaction Challenge. - **CAPTCHA:** Bypasses CAPTCHA Challenge.' items: enum: - JS_CHALLENGE - DEVICE_FINGERPRINT_CHALLENGE - HUMAN_INTERACTION_CHALLENGE - CAPTCHA type: string type: array x-default-description: 'null' captchaFooter: default: Enter the letters and numbers as they are shown in image above description: The text to show in the footer when showing a CAPTCHA challenge when `action` is set to `SHOW_CAPTCHA` and the request is challenged. maxLength: 5000 minLength: 1 type: string x-isnullable: true captchaHeader: default: We have detected an increased number of attempts to access this webapp. To help us keep this webapp secure, please let us know that you are not a robot by entering the text from captcha below. description: The text to show in the header when showing a CAPTCHA challenge when `action` is set to `SHOW_CAPTCHA` and the request is challenged. maxLength: 5000 minLength: 1 type: string x-isnullable: true captchaSubmitLabel: default: Yes, I am human description: The text to show on the label of the CAPTCHA challenge submit button when `action` is set to `SHOW_CAPTCHA` and the request is challenged. maxLength: 100 minLength: 1 type: string x-isnullable: true captchaTitle: default: Are you human? description: The title used when showing a CAPTCHA challenge when `action` is set to `SHOW_CAPTCHA` and the request is challenged. maxLength: 100 minLength: 1 type: string x-isnullable: true criteria: description: The list of access rule criteria. The rule would be applied only for the requests that matched all the listed conditions. items: $ref: '#/components/schemas/AccessRuleCriteria' type: array name: description: The unique name of the access rule. maxLength: 255 minLength: 1 type: string redirectResponseCode: default: MOVED_PERMANENTLY description: 'The response status code to return when `action` is set to `REDIRECT`. - **MOVED_PERMANENTLY:** Used for designating the permanent movement of a page (numerical code - 301). - **FOUND:** Used for designating the temporary movement of a page (numerical code - 302).' enum: - MOVED_PERMANENTLY - FOUND type: string x-isnullable: true redirectUrl: description: The target to which the request should be redirected, represented as a URI reference. Required when `action` is `REDIRECT`. type: string x-default-description: 'null' responseHeaderManipulation: description: An object that represents an action to apply to an HTTP response headers if all rule criteria will be matched regardless of `action` value. items: $ref: '#/components/schemas/HeaderManipulationAction' type: array required: - name - criteria - action type: object ChangeCertificateCompartmentDetails: properties: compartmentId: description: 'The [OCID](/Content/General/Concepts/identifiers.htm) of the compartment into which the resource should be moved. For information about moving resources between compartments, see [Moving Resources to a Different Compartment](/iaas/Content/Identity/Tasks/managingcompartments.htm#moveRes). ' maxLength: 255 minLength: 1 type: string required: - compartmentId type: object WafConfig: description: The Web Application Firewall configuration for the WAAS policy. properties: accessRules: description: The access rules applied to the Web Application Firewall. Used for defining custom access policies with the combination of `ALLOW`, `DETECT`, and `BLOCK` rules, based on different criteria. items: $ref: '#/components/schemas/AccessRule' maxItems: 100 type: array addressRateLimiting: $ref: '#/components/schemas/AddressRateLimiting' description: The IP address rate limiting settings used to limit the number of requests from an address. cachingRules: description: A list of caching rules applied to the web application. items: $ref: '#/components/schemas/CachingRule' type: array captchas: description: A list of CAPTCHA challenge settings. These are used to challenge requests with a CAPTCHA to block bots. items: $ref: '#/components/schemas/Captcha' type: array customProtectionRules: description: A list of the custom protection rule OCIDs and their actions. items: $ref: '#/components/schemas/CustomProtectionRuleSetting' type: array deviceFingerprintChallenge: $ref: '#/components/schemas/DeviceFingerprintChallenge' description: The device fingerprint challenge settings. Used to detect unique devices based on the device fingerprint information collected in order to block bots. goodBots: description: A list of bots allowed to access the web application. items: $ref: '#/components/schemas/GoodBot' type: array humanInteractionChallenge: $ref: '#/components/schemas/HumanInteractionChallenge' description: The human interaction challenge settings. Used to look for natural human interactions such as mouse movements, time on site, and page scrolling to identify bots. jsChallenge: $ref: '#/components/schemas/JsChallenge' description: The JavaScript challenge settings. Used to challenge requests with a JavaScript challenge and take the action if a browser has no JavaScript support in order to block bots. origin: description: The key in the map of origins referencing the origin used for the Web Application Firewall. The origin must already be included in `Origins`. Required when creating the `WafConfig` resource, but not on update. type: string originGroups: description: 'The map of origin groups and their keys used to associate origins to the `wafConfig`. Origin groups allow you to apply weights to groups of origins for load balancing purposes. Origins with higher weights will receive larger proportions of client requests. To add additional origins to your WAAS policy, update the `origins` field of a `UpdateWaasPolicy` request.' items: type: string type: array protectionRules: description: A list of the protection rules and their details. items: $ref: '#/components/schemas/ProtectionRule' type: array protectionSettings: $ref: '#/components/schemas/ProtectionSettings' description: The settings to apply to protection rules. threatFeeds: description: A list of threat intelligence feeds and the actions to apply to known malicious traffic based on internet intelligence. items: $ref: '#/components/schemas/ThreatFeed' type: array whitelists: description: A list of IP addresses that bypass the Web Application Firewall. items: $ref: '#/components/schemas/Whitelist' type: array type: object HealthCheck: description: 'Health checks monitor the status of your origin servers and only route traffic to the origins that pass the health check. If the health check fails, origin is automatically removed from the load balancing. There is roughly one health check per EDGE POP per period. Any checks that pass will be reported as "healthy".' properties: expectedResponseCodeGroup: default: - 2XX - 3XX description: 'The HTTP response codes that signify a healthy state. - **2XX:** Success response code group. - **3XX:** Redirection response code group. - **4XX:** Client errors response code group. - **5XX:** Server errors response code group.' items: enum: - 2XX - 3XX - 4XX - 5XX type: string type: array expectedResponseText: default: success description: Health check will search for the given text in a case-sensitive manner within the response body and will fail if the text is not found. type: string x-isnullable: true headers: additionalProperties: type: string description: 'HTTP header fields to include in health check requests, expressed as `"name": "value"` properties. Because HTTP header field names are case-insensitive, any use of names that are case-insensitive equal to other names will be rejected. If Host is not specified, requests will include a Host header field with value matching the policy''s protected domain. If User-Agent is not specified, requests will include a User-Agent header field with value "waf health checks". **Note:** The only currently-supported header fields are Host and User-Agent.' type: object x-default-description: 'The default for `Host` is the domain of the waasPolicy. The default for User-Agent is `waf health checks`. ' x-isnullable: true healthyThreshold: default: 2 description: Number of successful health checks after which the server is marked up. maximum: 20 minimum: 1 type: integer x-isnullable: true intervalInSeconds: default: 60 description: Time between health checks of an individual origin server, in seconds. maximum: 120 minimum: 1 type: integer x-isnullable: true isEnabled: default: false description: Enables or disables the health checks. type: boolean isResponseTextCheckEnabled: default: false description: Enables or disables additional check for predefined text in addition to response code. type: boolean method: default: HEAD description: An HTTP verb (i.e. HEAD, GET, or POST) to use when performing the health check. enum: - GET - HEAD - POST type: string path: default: / description: Path to visit on your origins when performing the health check. type: string x-example: /index.html timeoutInSeconds: default: 5 description: Response timeout represents wait time until request is considered failed, in seconds. maximum: 120 minimum: 2 type: integer x-isnullable: true unhealthyThreshold: default: 2 description: Number of failed health checks after which the server is marked down. maximum: 20 minimum: 1 type: integer x-isnullable: true type: object CreateCustomProtectionRuleDetails: description: 'The required data to create a custom protection rule. For more information about custom protection rules, see [Custom Protection Rules](/iaas/Content/WAF/Tasks/customprotectionrules.htm). **Warning:** Oracle recommends that you avoid using any confidential information when you supply string values using the API.' properties: compartmentId: description: The [OCID](/Content/General/Concepts/identifiers.htm) of the compartment in which to create the custom protection rule. maxLength: 255 minLength: 1 type: string definedTags: additionalProperties: additionalProperties: description: 'The value of the tag. Only the String type is supported. ' type: object description: 'Key-value pair representing a defined tag key and value, scoped to a namespace. Example: `{"CostCenter": "42"}` ' type: object description: 'Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see [Resource Tags](/Content/General/Concepts/resourcetags.htm). Example: `{"Operations": {"CostCenter": "42"}}` ' type: object description: description: A description for the Custom Protection rule. maxLength: 400 minLength: 1 type: string x-isnullable: true displayName: description: A user-friendly name for the custom protection rule. maxLength: 255 minLength: 1 type: string freeformTags: additionalProperties: type: string x-isnullable: true description: 'Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see [Resource Tags](/Content/General/Concepts/resourcetags.htm). Example: `{"Department": "Finance"}` ' type: object template: description: "The template text of the custom protection rule. All custom protection rules are expressed in ModSecurity Rule Language.\n\nAdditionally, each rule must include two placeholder variables that are updated by the WAF service upon publication of the rule.\n\n`id: {{id_1}}` - This field is populated with a unique rule ID generated by the WAF service which identifies a `SecRule`. More than one `SecRule` can be defined in the `template` field of a CreateCustomSecurityRule call. The value of the first `SecRule` must be `id: {{id_1}}` and the `id` field of each subsequent `SecRule` should increase by one, as shown in the example.\n\n`ctl:ruleEngine={{mode}}` - The action to be taken when the criteria of the `SecRule` are met, either `OFF`, `DETECT` or `BLOCK`. This field is automatically populated with the corresponding value of the `action` field of the `CustomProtectionRuleSetting` schema when the `WafConfig` is updated.\n\n*Example:*\n ```\n SecRule REQUEST_COOKIES \"regex matching SQL injection - part 1/2\" \\\n \"phase:2, \\\n msg:'Detects chained SQL injection attempts 1/2.', \\\n id: {{id_1}}, \\\n ctl:ruleEngine={{mode}}, \\\n deny\"\n SecRule REQUEST_COOKIES \"regex matching SQL injection - part 2/2\" \\\n \"phase:2, \\\n msg:'Detects chained SQL injection attempts 2/2.', \\\n id: {{id_2}}, \\\n ctl:ruleEngine={{mode}}, \\\n deny\"\n ```\n\n\nThe example contains two `SecRules` each having distinct regex expression to match the `Cookie` header value during the second input analysis phase.\n\nFor more information about custom protection rules, see [Custom Protection Rules](/Content/WAF/Tasks/customprotectionrules.htm).\n\nFor more information about ModSecurity syntax, see [Making Rules: The Basic Syntax](https://www.modsecurity.org/CRS/Documentation/making.html).\n\nFor more information about ModSecurity's open source WAF rules, see [Mod Security's OWASP Core Rule Set documentation](https://www.modsecurity.org/CRS/Documentation/index.html)." maxLength: 5000 minLength: 1 type: string required: - compartmentId - displayName - template type: object WafLog: description: A list of Web Application Firewall log entries. Each entry is a JSON object, including a timestamp property and other fields varying based on log type. Logs record what rules and countermeasures are triggered by requests and are used as a basis to move request handling into block mode. For more information about WAF logs, see [Logs](/iaas/Content/WAF/Tasks/logs.htm). properties: accessRuleKey: description: 'The `AccessRule` key that matched the request. For more information about access rules, see `UpdateAccessRules`. ' type: string action: description: The action taken on the request, either `ALLOW`, `DETECT`, or `BLOCK`. type: string addressRateLimitingKey: description: 'The `AddressRateLimiting` key that matched the request. For more information about address rate limiting, see `UpdateWafAddressRateLimiting`. ' type: string captchaAction: description: 'The CAPTCHA action taken on the request, `ALLOW` or `BLOCK`. For more information about CAPTCHAs, see `UpdateCaptchas`. ' type: string captchaExpected: description: The CAPTCHA challenge answer that was expected. type: string captchaFailCount: description: The number of times the CAPTCHA challenge was failed. type: string captchaReceived: description: The CAPTCHA challenge answer that was received. type: string clientAddress: description: The IPv4 address of the requesting client. type: string countryCode: description: 'ISO 3166-1 alpha-2 code of the country from which the request originated. For a list of codes, see [ISO''s website](https://www.iso.org/obp/ui/#search/code/). ' type: string countryName: description: The name of the country where the request originated. type: string device: description: The type of device that the request was made from. type: string domain: description: 'The `Host` header data of the request. ' type: string fingerprint: description: 'The hashed signature of the device''s fingerprint. For more information, see `DeviceFingerPrintChallenge`. ' type: string httpHeaders: additionalProperties: type: string description: The map of the request's header names to their respective values. type: object httpMethod: description: The HTTP method of the request. type: string incidentKey: description: 'The incident key of a request. An incident key is generated for each request processed by the Web Application Firewall and is used to idenitfy blocked requests in applicable logs. ' type: string logType: description: 'The type of log of the request. For more about log types, see [Logs](/iaas/Content/WAF/Tasks/logs.htm). ' type: string originAddress: description: The address of the origin server where the request was sent. type: string originResponseTime: description: 'The amount of time it took the origin server to respond to the request, in seconds. ' type: string protectionRuleDetections: additionalProperties: type: string description: 'A map of protection rule keys to detection message details. Detections are requests that matched the criteria of a protection rule but the rule''s action was set to `DETECT`. ' type: object referrer: description: The `Referrer` header value of the request. type: string requestHeaders: additionalProperties: type: string description: 'A map of header names to values of the request sent to the origin, including any headers appended by the Web Application Firewall. ' type: object requestUrl: description: The path and query string of the request. type: string responseCode: description: The status code of the response. type: integer responseSize: description: The size in bytes of the response. type: integer threatFeedKey: description: 'The `ThreatFeed` key that matched the request. For more information about threat feeds, see `UpdateThreatFeeds`. ' type: string timestamp: description: 'The date and time the Web Application Firewall processed the request and logged it. ' example: '2018-11-16T21:10:29Z' format: date-time type: string userAgent: description: The value of the request's `User-Agent` header field. type: string type: object x-go-type: import: package: github.corp.dyndns.com/waas/waas_control_plane_api/models type: WafLog CachingRule: allOf: - $ref: '#/components/schemas/CachingRuleSummary' UpdateWaasPolicyDetails: description: 'Updates the configuration details of a WAAS policy. **Warning:** Oracle recommends that you avoid using any confidential information when you supply string values using the API.' properties: additionalDomains: description: An array of additional domains protected by this WAAS policy. items: type: string type: array definedTags: additionalProperties: additionalProperties: description: 'The value of the tag. Only the String type is supported. ' type: object description: 'Key-value pair representing a defined tag key and value, scoped to a namespace. Example: `{"CostCenter": "42"}` ' type: object description: 'Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see [Resource Tags](/Content/General/Concepts/resourcetags.htm). Example: `{"Operations": {"CostCenter": "42"}}` ' type: object displayName: description: A user-friendly name for the WAAS policy. The name can be changed and does not need to be unique. maxLength: 255 minLength: 1 type: string x-isnullable: true freeformTags: additionalProperties: type: string x-isnullable: true description: 'Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see [Resource Tags](/Content/General/Concepts/resourcetags.htm). Example: `{"Department": "Finance"}` ' type: object originGroups: additionalProperties: $ref: '#/components/schemas/OriginGroup' description: 'The map of origin groups and their keys used to associate origins to the `wafConfig`. Origin groups allow you to apply weights to groups of origins for load balancing purposes. Origins with higher weights will receive larger proportions of client requests. To add additional origins to your WAAS policy, update the `origins` field of a `UpdateWaasPolicy` request.' example: application/json: "{\n \"originGroup1\": {\n \"origins\": [{\n \"origin\": \"origin1\",\n \"weight\": 2\n },\n {\n \"origin\": \"origin2\",\n \"weight\": 1\n }]\n },\n \"originGroup2\": {\n \"origins\": [{\n \"origin\": \"origin3\",\n \"weight\": 1\n },\n {\n \"origin\": \"origin4\",\n \"weight\": 1\n }]\n }\n}\n" type: object origins: additionalProperties: $ref: '#/components/schemas/Origin' description: A map of host to origin for the web application. The key should be a customer friendly name for the host, ex. primary, secondary, etc. example: application/json: "{\n \"primary\": {\n \"uri\": \"192.0.2.1\",\n \"httpPort\": 80,\n \"httpsPort\": 443\n }\n}\n" type: object policyConfig: $ref: '#/components/schemas/PolicyConfig' wafConfig: $ref: '#/components/schemas/WafConfig' type: object ChangeWaasPolicyCompartmentDetails: properties: compartmentId: description: 'The [OCID](/Content/General/Concepts/identifiers.htm) of the compartment into which the resource should be moved. For information about moving resources between compartments, see [Moving Resources to a Different Compartment](/iaas/Content/Identity/Tasks/managingcompartments.htm#moveRes). ' maxLength: 255 minLength: 1 type: string required: - compartmentId type: object ThreatFeed: description: The settings of the threat intelligence feed. You can block requests from IP addresses based on their reputations with various commercial and open source threat feeds. properties: action: description: The action to take when traffic is flagged as malicious by data from the threat intelligence feed. If unspecified, defaults to `OFF`. enum: - 'OFF' - DETECT - BLOCK type: string x-isnullable: true description: description: The description of the threat intelligence feed. type: string x-isnullable: true key: description: The unique key of the threat intelligence feed. type: string name: description: The name of the threat intelligence feed. maxLength: 255 minLength: 1 type: string x-isnullable: true type: object AccessRuleCriteria: description: When defined, the parent challenge would be applied only for the requests that matched all the listed conditions. properties: condition: description: "The criteria the access rule and JavaScript Challenge uses to determine if action should be taken on a request.\n- **URL_IS:** Matches if the concatenation of request URL path and query is identical to the contents of the `value` field. URL must start with a `/`.\n- **URL_IS_NOT:** Matches if the concatenation of request URL path and query is not identical to the contents of the `value` field. URL must start with a `/`.\n- **URL_STARTS_WITH:** Matches if the concatenation of request URL path and query starts with the contents of the `value` field. URL must start with a `/`.\n- **URL_PART_ENDS_WITH:** Matches if the concatenation of request URL path and query ends with the contents of the `value` field.\n- **URL_PART_CONTAINS:** Matches if the concatenation of request URL path and query contains the contents of the `value` field.\n- **URL_REGEX:** Matches if the concatenation of request URL path and query is described by the regular expression in the value field. The value must be a valid regular expression recognized by the PCRE library in Nginx (https://www.pcre.org).\n- **URL_DOES_NOT_MATCH_REGEX:** Matches if the concatenation of request URL path and query is not described by the regular expression in the `value` field. The value must be a valid regular expression recognized by the PCRE library in Nginx (https://www.pcre.org).\n- **URL_DOES_NOT_START_WITH:** Matches if the concatenation of request URL path and query does not start with the contents of the `value` field.\n- **URL_PART_DOES_NOT_CONTAIN:** Matches if the concatenation of request URL path and query does not contain the contents of the `value` field.\n- **URL_PART_DOES_NOT_END_WITH:** Matches if the concatenation of request URL path and query does not end with the contents of the `value` field.\n- **IP_IS:** Matches if the request originates from one of the IP addresses contained in the defined address list. The `value` in this case is string with one or multiple IPs or CIDR notations separated by new line symbol \\n\n*Example:* \"1.1.1.1\\n1.1.1.2\\n1.2.2.1/30\"\n- **IP_IS_NOT:** Matches if the request does not originate from any of the IP addresses contained in the defined address list. The `value` in this case is string with one or multiple IPs or CIDR notations separated by new line symbol \\n\n*Example:* \"1.1.1.1\\n1.1.1.2\\n1.2.2.1/30\"\n- **IP_IN_LIST:** Matches if the request originates from one of the IP addresses contained in the referenced address list. The `value` in this case is OCID of the address list.\n- **IP_NOT_IN_LIST:** Matches if the request does not originate from any IP address contained in the referenced address list. The `value` field in this case is OCID of the address list.\n- **HTTP_HEADER_CONTAINS:** The HTTP_HEADER_CONTAINS criteria is defined using a compound value separated by a colon: a header field name and a header field value. `host:test.example.com` is an example of a criteria value where `host` is the header field name and `test.example.com` is the header field value. A request matches when the header field name is a case insensitive match and the header field value is a case insensitive, substring match.\n*Example:* With a criteria value of `host:test.example.com`, where `host` is the name of the field and `test.example.com` is the value of the host field, a request with the header values, `Host: www.test.example.com` will match, where as a request with header values of `host: www.example.com` or `host: test.sub.example.com` will not match.\n- **HTTP_METHOD_IS:** Matches if the request method is identical to one of the values listed in field. The `value` in this case is string with one or multiple HTTP methods separated by new line symbol \\n The list of available methods: `GET`, `HEAD`, `POST`, `PUT`, `DELETE`, `CONNECT`, `OPTIONS`, `TRACE`, `PATCH`\n\n *Example:* \"GET\\nPOST\"\n\n- **HTTP_METHOD_IS_NOT:** Matches if the request is not identical to any of the contents of the `value` field. The `value` in this case is string with one or multiple HTTP methods separated by new line symbol \\n The list of available methods: `GET`, `HEAD`, `POST`, `PUT`, `DELETE`, `CONNECT`, `OPTIONS`, `TRACE`, `PATCH`\n\n *Example:* \"GET\\nPOST\"\n\n- **COUNTRY_IS:** Matches if the request originates from one of countries in the `value` field. The `value` in this case is string with one or multiple countries separated by new line symbol \\n Country codes are in ISO 3166-1 alpha-2 format. For a list of codes, see [ISO's website](https://www.iso.org/obp/ui/#search/code/).\n*Example:* \"AL\\nDZ\\nAM\"\n- **COUNTRY_IS_NOT:** Matches if the request does not originate from any of countries in the `value` field. The `value` in this case is string with one or multiple countries separated by new line symbol \\n Country codes are in ISO 3166-1 alpha-2 format. For a list of codes, see [ISO's website](https://www.iso.org/obp/ui/#search/code/).\n*Example:* \"AL\\nDZ\\nAM\"\n- **USER_AGENT_IS:** Matches if the requesting user agent is identical to the contents of the `value` field.\n*Example:* `Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:35.0) Gecko/20100101 Firefox/35.0`\n- **USER_AGENT_IS_NOT:** Matches if the requesting user agent is not identical to the contents of the `value` field.\n*Example:* `Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:35.0) Gecko/20100101 Firefox/35.0`" enum: - URL_IS - URL_IS_NOT - URL_STARTS_WITH - URL_PART_ENDS_WITH - URL_PART_CONTAINS - URL_REGEX - URL_DOES_NOT_MATCH_REGEX - URL_DOES_NOT_START_WITH - URL_PART_DOES_NOT_CONTAIN - URL_PART_DOES_NOT_END_WITH - IP_IS - IP_IS_NOT - IP_IN_LIST - IP_NOT_IN_LIST - HTTP_HEADER_CONTAINS - HTTP_METHOD_IS - HTTP_METHOD_IS_NOT - COUNTRY_IS - COUNTRY_IS_NOT - USER_AGENT_IS - USER_AGENT_IS_NOT type: string x-isnullable: true isCaseSensitive: default: false description: When enabled, the condition will be matched with case-sensitive rules. type: boolean value: description: The criteria value. maxLength: 5000 minLength: 1 type: string x-isnullable: true required: - condition - value type: object parameters: WaasPolicyIdFilterParam: description: Filter policies using a list of policy OCIDs. in: query name: id style: form explode: true schema: type: array items: type: string CustomProtectionModSecurityRuleIdFilterParam: description: Filter rules using a list of ModSecurity rule IDs. in: query name: modSecurityRuleId style: form explode: true schema: type: array items: type: string IfMatchHeader: description: For optimistic concurrency control. In the `PUT` or `DELETE` call for a resource, set the `if-match` parameter to the value of the etag from a previous `GET` or `POST` response for that resource. The resource will be updated or deleted only if the etag provided matches the resource's current etag value. in: header name: if-match schema: type: string WafFeatureQueryParam: description: Filter stats by the Web Application Firewall feature that triggered the block action. If unspecified, data for all WAF features will be returned. in: query name: wafFeature style: form explode: true schema: type: array items: enum: - PROTECTION_RULES - JS_CHALLENGE - ACCESS_RULES - THREAT_FEEDS - HUMAN_INTERACTION_CHALLENGE - DEVICE_FINGERPRINT_CHALLENGE - CAPTCHA - ADDRESS_RATE_LIMITING type: string ToDateObservedQueryParam: description: A filter that limits returned events to those occurring before a date and time, specified in RFC 3339 format. in: query name: timeObservedLessThan x-isnullable: true schema: type: string format: date-time ToDateLogObservedQueryParam: description: A filter that matches log entries where the observed event occurred before a date and time, specified in RFC 3339 format. in: query name: timeObservedLessThan x-isnullable: true schema: type: string format: date-time CertificateIdParam: description: The [OCID](/Content/General/Concepts/identifiers.htm) of the SSL certificate used in the WAAS policy. This number is generated when the certificate is added to the policy. in: path name: certificateId required: true schema: type: string SortOrderQueryParam: description: The value of the sorting direction of resources in a paginated 'List' call. If unspecified, defaults to `DESC`. in: query name: sortOrder required: false x-isnullable: true schema: type: string enum: - ASC - DESC CertificateDisplayNameFilterParam: description: Filter certificates using a list of display names. in: query name: displayName style: form explode: true schema: type: array items: type: string CustomProtectionRuleTimeCreatedLessThanFilterParam: description: A filter that matches custom protection rules created before the specified date-time. in: query name: timeCreatedLessThan x-isnullable: true schema: type: string format: date-time CertificateTimeCreatedGreaterThanOrEqualToFilterParam: description: A filter that matches certificates created on or after the specified date-time. in: query name: timeCreatedGreaterThanOrEqualTo x-isnullable: true schema: type: string format: date-time CertificateIdFilterParam: description: Filter certificates using a list of certificates OCIDs. in: query name: id style: form explode: true schema: type: array items: type: string CertificateSortByQueryParam: description: The value by which certificate summaries are sorted in a paginated 'List' call. If unspecified, defaults to `timeCreated`. in: query name: sortBy required: false x-isnullable: true schema: type: string enum: - id - compartmentId - displayName - notValidAfter - timeCreated AddressListIdParam: description: The [OCID](/Content/General/Concepts/identifiers.htm) of the address list. This number is generated when the address list is added to the compartment. in: path name: addressListId required: true schema: type: string CertificateLifecycleStateFilterParam: description: Filter certificates using a list of lifecycle states. in: query name: lifecycleState style: form explode: true schema: type: array items: enum: - CREATING - ACTIVE - FAILED - UPDATING - DELETING - DELETED type: string x-obmcs-top-level-enum: '#/definitions/LifecycleStates' WaasPolicyIdParam: description: The [OCID](/Content/General/Concepts/identifiers.htm) of the WAAS policy. in: path name: waasPolicyId required: true schema: type: string LargeLimitQueryParam: description: The maximum number of items to return in a paginated call. If unspecified, defaults to `20`. in: query name: limit required: false x-isnullable: true schema: type: integer format: int32 default: 20 maximum: 100 minimum: 1 CustomProtectionRuleIdFilterParam: description: Filter custom protection rules using a list of custom protection rule OCIDs. in: query name: id style: form explode: true schema: type: array items: type: string AddressListNameFilterParam: description: Filter address lists using a list of names. in: query name: name style: form explode: true schema: type: array items: type: string WaasPolicyDisplayNameFilterParam: description: Filter policies using a list of display names. in: query name: displayName style: form explode: true schema: type: array items: type: string FromDateObservedQueryParam: description: A filter that limits returned events to those occurring on or after a date and time, specified in RFC 3339 format. If unspecified, defaults to 30 minutes before receipt of the request. in: query name: timeObservedGreaterThanOrEqualTo x-isnullable: true schema: type: string format: date-time CustomProtectionRuleTimeCreatedGreaterThanOrEqualToFilterParam: description: A filter that matches Custom Protection rules created on or after the specified date-time. in: query name: timeCreatedGreaterThanOrEqualTo x-isnullable: true schema: type: string format: date-time CertificateTimeCreatedLessThanFilterParam: description: A filter that matches certificates created before the specified date-time. in: query name: timeCreatedLessThan x-isnullable: true schema: type: string format: date-time AddressListLifecycleStateFilterParam: description: Filter address lists using a list of lifecycle states. in: query name: lifecycleState style: form explode: true schema: type: array items: enum: - CREATING - ACTIVE - FAILED - UPDATING - DELETING - DELETED type: string x-obmcs-top-level-enum: '#/definitions/LifecycleStates' LimitQueryParam: description: The maximum number of items to return in a paginated call. If unspecified, defaults to `10`. in: query name: limit required: false x-isnullable: true schema: type: integer format: int32 default: 10 maximum: 100 minimum: 1 ProtectionRuleActionFilterParam: description: Filter rules using a list of actions. in: query name: action style: form explode: true schema: type: array items: enum: - 'OFF' - DETECT - BLOCK type: string WorkRequestIdParam: description: The [OCID](/Content/General/Concepts/identifiers.htm) of the work request. This number is generated when work request is created. in: path name: workRequestId required: true schema: type: string FromDateLogObservedQueryParam: description: A filter that matches log entries where the observed event occurred on or after a date and time specified in RFC 3339 format. If unspecified, defaults to two hours before receipt of the request. in: query name: timeObservedGreaterThanOrEqualTo x-isnullable: true schema: type: string format: date-time WorkRequestSortByQueryParam: description: The value by which work requests are sorted in a paginated 'List' call. If unspecified, defaults to `timeAccepted`. in: query name: sortBy required: false x-isnullable: true schema: type: string enum: - id - status - timeAccepted - timeStarted - timeFinished - operationType EdgeSubnetSortByQueryParam: description: The value by which edge node subnets are sorted in a paginated 'List' call. If unspecified, defaults to `timeModified`. in: query name: sortBy required: false x-isnullable: true schema: type: string enum: - cidr - region - timeModified ProtectionModSecurityRuleIdFilterParam: description: Filter rules using a list of ModSecurity rule IDs. in: query name: modSecurityRuleId style: form explode: true schema: type: array items: type: string WaasPolicyLifecycleStateFilterParam: description: Filter policies using a list of lifecycle states. in: query name: lifecycleState style: form explode: true schema: type: array items: enum: - CREATING - ACTIVE - FAILED - UPDATING - DELETING - DELETED type: string x-obmcs-top-level-enum: '#/definitions/LifecycleStates' RecommendationFilterParam: description: A filter that matches recommended protection rules based on the selected action. If unspecified, rules with any action type are returned. in: query name: recommendedAction required: false schema: type: string enum: - DETECT - BLOCK PageQueryParam: description: The value of the `opc-next-page` response header from the previous paginated call. in: query name: page required: false x-isnullable: true schema: type: string CustomProtectionRuleActionFilterParam: description: Filter rules using a list of actions. in: query name: action style: form explode: true schema: type: array items: enum: - DETECT - BLOCK type: string AddressListTimeCreatedGreaterThanOrEqualToFilterParam: description: A filter that matches address lists created on or after the specified date-time. in: query name: timeCreatedGreaterThanOrEqualTo x-isnullable: true schema: type: string format: date-time RetryTokenHeaderParam: description: 'A token that uniquely identifies a request so it can be retried in case of a timeout or server error without risk of executing that same action again. Retry tokens expire after 24 hours, but can be invalidated before then due to conflicting operations *Example:* If a resource has been deleted and purged from the system, then a retry of the original delete request may be rejected.' in: header name: opc-retry-token schema: type: string maxLength: 64 minLength: 1 CompartmentIdQueryParam: description: The [OCID](/iaas/Content/General/Concepts/identifiers.htm) of the compartment. This number is generated when the compartment is created. in: query name: compartmentId required: true schema: type: string maxLength: 255 minLength: 1 AddressListTimeCreatedLessThanFilterParam: description: A filter that matches address lists created before the specified date-time. in: query name: timeCreatedLessThan x-isnullable: true schema: type: string format: date-time CustomProtectionRuleSortByQueryParam: description: The value by which custom protection rules are sorted in a paginated 'List' call. If unspecified, defaults to `timeCreated`. in: query name: sortBy required: false x-isnullable: true schema: type: string enum: - id - compartmentId - displayName - modSecurityRuleId - timeCreated WaasPolicyTimeCreatedLessThanFilterParam: description: A filter that matches policies created before the specified date-time. in: query name: timeCreatedLessThan x-isnullable: true schema: type: string format: date-time RequestIdHeaderParam: description: The unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. in: header name: opc-request-id required: false x-isnullable: true schema: type: string AddressListSortByQueryParam: description: The value by which address lists are sorted in a paginated 'List' call. If unspecified, defaults to `timeCreated`. in: query name: sortBy required: false x-isnullable: true schema: type: string enum: - id - name - timeCreated CustomProtectionRuleIdParam: description: The [OCID](/Content/General/Concepts/identifiers.htm) of the custom protection rule. This number is generated when the custom protection rule is added to the compartment. in: path name: customProtectionRuleId required: true schema: type: string WaasPolicySortByQueryParam: description: The value by which policies are sorted in a paginated 'List' call. If unspecified, defaults to `timeCreated`. in: query name: sortBy required: false x-isnullable: true schema: type: string enum: - id - displayName - timeCreated CustomProtectionRuleDisplayNameFilterParam: description: Filter custom protection rules using a list of display names. in: query name: displayName style: form explode: true schema: type: array items: type: string WaasPolicyTimeCreatedGreaterThanOrEqualToFilterParam: description: A filter that matches policies created on or after the specified date and time. in: query name: timeCreatedGreaterThanOrEqualTo x-isnullable: true schema: type: string format: date-time ProtectionRuleKeyParam: description: The protection rule key. in: path name: protectionRuleKey required: true schema: type: string AddressListIdFilterParam: description: Filter address lists using a list of address lists OCIDs. in: query name: id style: form explode: true schema: type: array items: type: string WaasPolicyIdQueryParam: description: The [OCID](/Content/General/Concepts/identifiers.htm) of the policy. in: query name: waasPolicyId required: true schema: type: string CustomProtectionRuleLifecycleStateFilterParam: description: Filter Custom Protection rules using a list of lifecycle states. in: query name: lifecycleState style: form explode: true schema: type: array items: enum: - CREATING - ACTIVE - FAILED - UPDATING - DELETING - DELETED type: string x-obmcs-top-level-enum: '#/definitions/LifecycleStates' responses: NoEtagMatch: description: The specified etag does not match the current etag of the resource. headers: opc-request-id: description: A unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. schema: type: string content: application/json: schema: $ref: '#/components/schemas/Error' NotAuthenticated: description: The information required to complete authentication was not provided or was incorrect. headers: opc-request-id: description: A unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. schema: type: string content: application/json: schema: $ref: '#/components/schemas/Error' BadRequest: description: Bad Request. headers: opc-request-id: description: A unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. schema: type: string content: application/json: schema: $ref: '#/components/schemas/Error' IncorrectState: description: The resource is not in the `ACTIVE` state. headers: opc-request-id: description: A unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. schema: type: string content: application/json: schema: $ref: '#/components/schemas/Error' NotAuthorizedOrNotFound: description: Not authorized or not found. headers: opc-request-id: description: A unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. schema: type: string content: application/json: schema: $ref: '#/components/schemas/Error' Error: description: An error has occurred. headers: opc-request-id: description: A unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. schema: type: string content: application/json: schema: $ref: '#/components/schemas/Error' NoContent: description: No content. headers: opc-request-id: description: A unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. schema: type: string TooManyRequests: description: The request has been throttled due to an excessive number of requests. headers: opc-request-id: description: A unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. schema: type: string content: application/json: schema: $ref: '#/components/schemas/Error' RequestAcceptedForProcessingWithEtag: description: The request was accepted for processing. headers: etag: description: For optimistic concurrency control. See `if-match`. schema: type: string opc-request-id: description: A unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. schema: type: string opc-work-request-id: description: The [OCID](/Content/General/Concepts/identifiers.htm) of the work request. schema: type: string NotAuthorizedOrResourceAlreadyExists: description: Not authorized or the resource already exists. headers: opc-request-id: description: A unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. schema: type: string content: application/json: schema: $ref: '#/components/schemas/Error' RequestAcceptedForProcessing: description: The request was accepted for processing. headers: opc-request-id: description: A unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. schema: type: string opc-work-request-id: description: The [OCID](/Content/General/Concepts/identifiers.htm) of the work request. schema: type: string securitySchemes: ApiKey: in: header name: Authorization type: apiKey x-descriptions: opc-next-page: description: For list pagination. When this header appears in the response, additional pages of results may remain. For important details about how pagination works, see [List Pagination](/iaas/Content/API/Concepts/usingapi.htm#nine). type: string opc-request-id: description: A unique Oracle-assigned identifier for the request. If you need to contact Oracle about a particular request, please provide the request ID. type: string opc-work-request-id: description: The [OCID](/Content/General/Concepts/identifiers.htm) of the work request. type: string x-obmcs-client-retries-enabled: false