openapi: 3.0.1
info:
title: Cloud Application Security Account Management Login Protect API
license:
name: Imperva License Agreement.
url: http://www.imperva.com/other/license_agreement.asp
version: '1.0'
description: Add, delete, and modify accounts. Get account details.
servers:
- url: https://my.imperva.com
description: Imperva API server
variables: {}
security:
- api_key: []
- api_id: []
tags:
- name: Login Protect
description: Provision Login Protect users and configure protected pages.
paths:
/api/prov/v1/sites/lp/configure:
post:
tags:
- Login Protect
summary: Add Login Protect User
description: Use this operation to change Login Protect settings for a site.
operationId: modifyLpSiteConfiguration
parameters:
- name: site_id
in: query
description: Numeric identifier of the site to operate on.
required: true
schema:
type: integer
format: int64
example: 10
- name: enabled
in: query
description: 'Pass true to enable login protect on site, and false to disable it.
Default: true'
schema:
type: boolean
example: true
- name: specific_users_list
in: query
description: Comma separated email list to set login protect users for the site. If the list is empty all users will be allowed to access the site using Login Protect.
schema:
type: string
example: admin@example.com
- name: send_lp_notifications
in: query
description: 'Pass true to send notification on successful login using login protect.
Default: false'
schema:
type: boolean
example: true
- name: allow_all_users
in: query
description: 'Pass true to allow all login protect users to access the site. If you want to allow only a specific list of users to access the site using Login Protect set this to false, and add the list to specific_user_list.
Default: true'
schema:
type: boolean
example: true
- name: authentication_methods
in: query
description: 'Comma separated list of allowed authentication methods: sms | email | ga'
schema:
type: string
example: sms
- name: urls
in: query
description: A comma separated list of resource paths. For example, /home and /admin/index.html are resource paths, while http://www.example.com/home is not. Each URL should be encoded separately using percent encoding as specified by RFC 3986 (http://tools.ietf.org/html/rfc3986#section-2.1). An empty URL list will remove all URLs.
schema:
type: string
example: /home
- name: url_patterns
in: query
description: 'A comma separated list of url patterns. Possible values: contains | equals | prefix | suffix | not_equals | not_contain | not_prefix | not_suffix. The patterns should be in accordance with the matching urls sent by the urls parameter.'
schema:
type: string
example: prefix
responses:
'200':
description: res - contains the specific error code:
9413 - Unknown/unauthorized site_id18001 - Format invalid
18002 - Application invalid
18011 - Invalid SMS Text
9403 - Unknown/unauthorized account_id
1001 - E-mail invalid
18003 - Invalid phone number
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/ApiResultSiteStatus'
- $ref: '#/components/schemas/ApiResult'
/api/prov/v1/sites/lp/configure-app:
post:
tags:
- Login Protect
summary: Configure Login Protect on Admin Areas
description: Use this operation to configure Login Protect on wordpress | joomla | phpbb admin areas.
operationId: configureProtectedAppByLp
parameters:
- name: site_id
in: query
description: Numeric identifier of the site to operate on.
required: true
schema:
type: integer
format: int64
example: 10
- name: protected_app
in: query
description: Protect admin areas of joomla | wordpress | phpBB.
schema:
type: string
example: wordpress
responses:
'200':
description: res - contains the specific error code:
9413 - Unknown/unauthorized site_id
18001 - Format invalid
18002 - Application invalid
18011 - Invalid SMS Text
9403 - Unknown/unauthorized account_id
1001 - E-mail invalid
18003 - Invalid phone number
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/ApiResultSiteStatus'
- $ref: '#/components/schemas/ApiResult'
/api/prov/v1/sites/lp/add-user:
post:
tags:
- Login Protect
summary: Add Login Protect User
description: Use this operation to add a Login Protect user for a site.
operationId: addLpUser
parameters:
- name: account_id
in: query
description: Numeric identifier of the account to operate on.
required: true
schema:
type: string
example: 10
- name: email
in: query
description: Email address.
required: true
schema:
type: string
example: admin@example.com
- name: name
in: query
description: 'Example: John Smith'
schema:
type: string
example: John Smith
- name: phone
in: query
description: 'Phone number. For example: "1-8662507659"'
schema:
type: string
example: 1-8662507659
- name: is_phone_verified
in: query
description: Whether or not to skip phone verification.
schema:
type: boolean
example: true
- name: is_email_verified
in: query
description: Whether or not to skip email address verification.
schema:
type: boolean
example: true
- name: should_send_activation_email
in: query
description: Whether or not to send activation email to user.
schema:
type: boolean
example: true
responses:
'200':
description: res - contains the specific error code:9403 - Unknown/unauthorized account_id
1001 - E-mail invalid18005 - Login Protect User Exists18006 - Operation Not Allowed18009 - Not Supported Action
18004 - Failed to Send E-Mail
content:
application/json:
schema:
$ref: '#/components/schemas/ApiResult'
/api/prov/v1/sites/lp/users:
post:
tags:
- Login Protect
summary: Get Login Protect Users
description: Use this operation to get the account's login protect user list.
operationId: getLpUsers
parameters:
- name: account_id
in: query
description: Numeric identifier of the account to operate on.
required: true
schema:
type: string
example: 10
responses:
'200':
description: res - contains the specific error code:
18003 - Invalid phone number18004 - Failed to Send E-Mail
9403 - Unknown/unauthorized account_id
1001 - E-mail invalid18005 - Login Protect User Exists
18006 - Operation Not Allowed
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/LoginProtectUsersApiResults'
- $ref: '#/components/schemas/ApiResult'
/api/prov/v1/sites/lp/edit-user:
post:
tags:
- Login Protect
summary: Edit Login Protect User
description: Edit Login Protect user's settings.
operationId: editLpUser
parameters:
- name: account_id
in: query
description: Numeric identifier of the account to operate on.
required: true
schema:
type: string
example: 10
- name: email
in: query
description: Email address.
required: true
schema:
type: string
example: admin@example.com
- name: name
in: query
description: 'Example: John Smith'
schema:
type: string
example: John Smith
- name: phone
in: query
description: 'Phone number. For example: "1-8662507659"'
schema:
type: string
example: 1-8662507659
- name: is_phone_verified
in: query
description: Whether or not to skip phone verification.
schema:
type: boolean
example: true
- name: is_email_verified
in: query
description: Whether or not to skip email address verification.
schema:
type: boolean
example: true
- name: should_send_activation_email
in: query
description: Whether or not to send activation email to user.
schema:
type: boolean
example: true
responses:
'200':
description: res - contains the specific error code:
9403 - Unknown/unauthorized account_id
1001 - E-mail invalid
18005 - Login Protect User Exists
18006 - Operation Not Allowed
18009 - Not Supported Action18004 - Failed to Send E-Mail
content:
application/json:
schema:
$ref: '#/components/schemas/ApiResult'
/api/prov/v1/sites/lp/send-sms:
post:
tags:
- Login Protect
summary: Send SMS to User
description: Use this operation to send an SMS to a login protect user.
operationId: sendSms
parameters:
- name: account_id
in: query
description: Numeric identifier of the account to operate on.
required: true
schema:
type: string
example: 10
- name: email
in: query
description: Email address.
required: true
schema:
type: string
example: admin@example.com
- name: sms_text
in: query
description: Text that will be sent in SMS.
required: true
schema:
type: string
example: hello
responses:
'200':
description: res - contains the specific error code:
18003 -Invalid phone number
18011 - Invalid SMS Text
9403 - Unknown/unauthorized account_id
18010 - Invalid User
18007 - Exceeded Allowed SMS
18008 - Failed to Send SMS
content:
application/json:
schema:
$ref: '#/components/schemas/ApiResult'
/api/prov/v1/sites/lp/remove:
post:
tags:
- Login Protect
summary: Remove Login Protect User
description: Use this operation to remove a login protect user from an account's user list.
operationId: removeLpUser
parameters:
- name: account_id
in: query
description: Numeric identifier of the account to operate on.
required: true
schema:
type: string
example: 10
- name: email
in: query
description: Email address.
required: true
schema:
type: string
example: admin@example.com
responses:
'200':
description: res - contains the specific error code:
18003 - Invalid phone number
18004 - Failed to Send E-Mail
9403 - Unknown/unauthorized account_id
1001 - E-mail invalid
18005 - Login Protect User Exists
18006 - Operation Not Allowed
content:
application/json:
schema:
$ref: '#/components/schemas/ApiResult'
components:
schemas:
APISealLocationItem:
type: object
properties:
id:
type: string
name:
type: string
ApiResultSiteStatus:
type: object
properties:
res:
type: integer
description: res - contains specific error code
format: int32
example: 0
res_message:
type: string
example: OK
debug_info:
type: array
items:
type: object
additionalProperties:
type: object
example: {}
example: {}
site_id:
type: integer
format: int64
example: 10
statusEnum:
type: string
example: pending-dns-changes
enum:
- pending-dns-changes
- fully-configured
- pending-select-approver
- pending-certificate
- unknown
status:
type: string
example: pending-dns-changes
domain:
type: string
example: admin@example.com
account_id:
type: integer
format: int64
example: 1
acceleration_level:
type: string
example: advanced
site_creation_date:
type: integer
format: int64
example: 1610396346000
ips:
type: array
items:
type: object
example: 1.2.3.4
dns:
type: array
items:
$ref: '#/components/schemas/DnsInstructionItem'
original_dns:
type: array
items:
$ref: '#/components/schemas/DnsInstructionItem'
warnings:
type: array
items:
$ref: '#/components/schemas/SiteConfigurationWarning'
active:
type: string
example: active
enum:
- active
- bypass
support_all_tls_versions:
type: boolean
example: true
use_wildcard_san_instead_of_full_domain_san:
type: boolean
example: true
add_naked_domain_san:
type: boolean
example: true
set_site_cookies_without_domain:
type: boolean
example: true
additionalErrors:
type: array
items:
type: object
example: 1001
display_name:
type: string
example: loginprotectapi1610396334653.incaptest.info
security:
type: array
example:
waf:
rules:
- id: api.threats.bot_access_control
name: Bot Access Control
block_bad_bots: true
challenge_suspected_bots: true
- id: api.threats.sql_injection
name: SQL Injection
action: api.threats.action.block_request
action_text: Block Request
- id: api.threats.cross_site_scripting
name: Cross Site Scripting (XSS)
exceptions:
- values:
- urls:
- value: /gsddg
pattern: EQUALS
id: api.rule_exception_type.url
name: URL
id: 244711494
action: api.threats.action.alert
action_text: Alert Only
- id: api.threats.illegal_resource_access
name: Illegal Resource Access
action: api.threats.action.block_user
action_text: Block User
- id: api.threats.ddos
name: DDoS
activation_mode: api.threats.ddos.activation_mode.off
activation_mode_text: 'Off'
ddos_traffic_threshold: api.threats.ddos.ddos_trassic_threshold
ddos_traffic_threshold_text: '750'
- id: api.threats.backdoor
name: Backdoor Protect
action: api.threats.action.quarantine_url
action_text: Auto-Quarantine
- action: api.threats.action.block_ip
action_text: Block IP
id: api.threats.remote_file_inclusion
name: Remote File Inclusion
acls:
rules:
- ips:
- 2.3.4.5
exceptions:
- values:
- id: api.rule_exception_type.url
name: URL
urls:
- value: /home
pattern: EQUALS
id: 493271006
id: api.acl.blacklisted_ips
name: Visitors from denylisted IPs
items:
type: object
additionalProperties:
type: object
sealLocation:
$ref: '#/components/schemas/APISealLocationItem'
ssl:
type: array
example:
origin_server:
detected: 'true'
detectionStatus: ok
items:
type: object
additionalProperties:
type: object
siteDualFactorSettings:
$ref: '#/components/schemas/SiteDualFactorSettings'
login_protect:
$ref: '#/components/schemas/LoginProtectApiResult'
performance_configuration:
$ref: '#/components/schemas/PerformanceConfigurationApiResult'
extended_ddos:
type: integer
format: int32
example: 0
incap_rules:
type: array
items:
$ref: '#/components/schemas/IncapRuleApiResult'
LoginProtectApiResult:
type: object
properties:
enabled:
type: boolean
example: true
specific_users_list:
type: array
items:
$ref: '#/components/schemas/specific_users_list'
send_lp_notifications:
type: boolean
example: true
allow_all_users:
type: boolean
example: true
authentication_methods:
uniqueItems: true
type: array
items:
type: object
example: email
urls:
type: array
items:
type: object
example: /userlist
url_patterns:
type: array
items:
type: object
example: CONTAINS
PerformanceConfigurationApiResult:
type: object
properties:
advanced_caching_rules:
type: array
example:
never_cache_resources:
- pattern: SUFFIX
url: /test.html
always_cache_resources:
- pattern: NOT_EQUALS
url: /index.html
ttl: '5'
ttlUnits: SECONDS
- pattern: EQUALS
url: /home.html
ttl: '6'
ttlUnits: DAYS
items:
type: object
additionalProperties:
type: object
acceleration_level:
type: string
example: advanced
async_validation:
type: boolean
example: true
minify_javascript:
type: boolean
example: true
minify_css:
type: boolean
example: true
minify_static_html:
type: boolean
example: true
compress_jpeg:
type: boolean
example: true
compress_jepg:
type: boolean
example: true
progressive_image_rendering:
type: boolean
example: true
aggressive_compression:
type: boolean
example: true
compress_png:
type: boolean
example: true
on_the_fly_compression:
type: boolean
example: true
tcp_pre_pooling:
type: boolean
example: true
comply_no_cache:
type: boolean
example: true
comply_vary:
type: boolean
example: true
use_shortest_caching:
type: boolean
example: true
perfer_last_modified:
type: boolean
example: true
prefer_last_modified:
type: boolean
example: true
disable_client_side_caching:
type: boolean
example: true
cache300x:
type: boolean
example: true
cache_headers:
uniqueItems: true
type: array
items:
type: object
ApiResult:
type: object
properties:
res:
type: integer
description: res - contains specific error code
format: int32
example: 0
res_message:
type: string
example: OK
debug_info:
type: array
items:
type: object
additionalProperties:
type: object
example: {}
example: {}
DnsInstructionItem:
type: object
properties:
dns_record_name:
type: string
example: loginprotectapi1610396334653.incaptest.info
set_type_to:
type: string
example: CNAME
enum:
- CNAME
- A
- AAAA
- MX
- NS
- TXT
- Unkown
- CAA
set_data_to:
type: array
items:
type: object
example: 67eufzur3g.dev.impervadns.net
specific_users_list:
type: object
properties:
email:
type: string
description: email
example: John@example.com
name:
type: string
description: name
example: John Doe
status:
type: string
description: status
example: INVITATION_SENT
SiteConfigurationWarning:
type: object
properties:
type:
type: string
example: CNAME
enum:
- CNAME
- A
- AAAA
- MX
- NS
- TXT
- Unkown
- CAA
set_data_to:
type: array
items:
type: object
example: 67eufzur3g.dev.impervadns.net
LoginProtectUsersApiResults:
type: object
properties:
users:
type: array
items:
$ref: '#/components/schemas/LpExtendedUser'
customAreasExceptions:
type: object
properties:
pattern:
type: string
example: CONTAINS
enum:
- EQUALS
- NOT_EQUALS
- NOT_CONTAINS
- PREFIX
- SUFFIX
- NOT_PREFIX
- NOT_SUFFIX
- CONTAINS
url:
type: string
example: /userlist
SiteDualFactorSettings:
type: object
properties:
specificUsers:
type: array
items:
type: string
example: lpuser1_api1610396342408@incaptest.info
enabled:
type: boolean
example: false
customAreas:
type: array
items:
$ref: '#/components/schemas/customAreas'
customAreasExceptions:
type: array
items:
$ref: '#/components/schemas/customAreasExceptions'
allowAllUsers:
type: boolean
example: true
shouldSuggestApplicatons:
type: boolean
example: true
allowedMedia:
uniqueItems: true
type: array
items:
type: string
example: sms
enum:
- ga
- sms
- email
shouldSendLoginNotifications:
type: boolean
example: true
application:
type: boolean
writeOnly: true
version:
type: integer
format: int32
IncapRuleApiResult:
type: object
properties:
id:
type: integer
format: int64
example: 123
name:
type: string
example: Block Click Worms
action:
type: string
example: api.rule_action_type.rule_action_block
rule:
type: string
example: ClientIP == 1.2.3.4
creation_date:
type: integer
format: int64
updated_by:
type: string
example: John
updated_at:
type: integer
format: int64
example: 1611228121241
comment:
type: string
example: rule comment
customAreas:
type: object
properties:
pattern:
type: string
example: CONTAINS
enum:
- EQUALS
- NOT_EQUALS
- NOT_CONTAINS
- PREFIX
- SUFFIX
- NOT_PREFIX
- NOT_SUFFIX
- CONTAINS
url:
type: string
example: /userlist
LpExtendedUser:
type: object
properties:
email:
type: string
description: email
example: John@example.com
name:
type: string
description: name
example: John Doe
status:
type: string
description: status
example: INVITATION_SENT
phone:
type: string
description: phone
example: 1-8662507658
creation_date:
type: string
description: creation_date
format: date-time
securitySchemes:
api_id:
type: apiKey
name: x-API-Id
in: header
api_key:
type: apiKey
name: x-API-Key
in: header
externalDocs:
description: Cloud Application Security API Reference
url: https://docs.imperva.com/bundle/cloud-application-security/page/api/api.htm