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_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/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 invalid
18005 - Login Protect User Exists
18006 - Operation Not Allowed
18009 - 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 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: 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 Action
18004 - 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