# Logs in to Workflow

Allows the user to login for device enrollment.

Endpoint: POST /deviceEnrollments/workflows/{workflowId}/login
Version: 0.0.1

## Path parameters:

  - `workflowId` (string, required)

## Request fields (application/json):

  - `accessToken` (string, required)
    Authentication token required for accessing the enrollment workflow.

  - `enrollmentId` (string)
    Unique identifier for an existing enrollment, or leave empty to create a new enrollment.

  - `cpArgs` (object)
    Captive portal arguments for device authentication.

  - `cpArgs.ssid` (string)
    WiFi network name that the device is connecting to.

  - `cpArgs.networkId` (string)
    Unique identifier for the wireless network.

  - `cpArgs.redirectUrl` (string)
    URL where the user will be redirected after completing the enrollment process.

  - `cpArgs.clientMac` (string)
    MAC address of the device connecting to the network.

  - `cpArgs.uip` (string)
    IP address assigned to the device.

  - `cpArgs.apip` (string)
    IP address of the access point.

  - `cpArgs.zoneName` (string)
    Encrypted venue ID (zone name).

## Response 200 fields (application/json):

  - `workflowId` (string)
    Unique identifier for the workflow configuration.

  - `publishedWorkflowId` (string)
    Unique identifier for the active workflow version being used for enrollment.

  - `token` (string)
    Authentication token for accessing enrollment resources.

  - `enrollment` (object)
    Enrollment information associated with the token.

  - `enrollment.id` (string)
    Identifier of the new enrollment.

  - `enrollment.description` (string)
    Description for the enrollment.

  - `enrollment.status` (string)
    Enrollment status.
    Enum: "CREATED", "STARTED", "FINISHED", "ABANDONED", "ACTIVE", "INACTIVE", "REVOKED"

## Response 400 fields (application/json):

  - `status` (string)
    Enum: "100 CONTINUE", "101 SWITCHING_PROTOCOLS", "102 PROCESSING", "103 EARLY_HINTS", "103 CHECKPOINT", "200 OK", "201 CREATED", "202 ACCEPTED", "203 NON_AUTHORITATIVE_INFORMATION", "204 NO_CONTENT", "205 RESET_CONTENT", "206 PARTIAL_CONTENT", "207 MULTI_STATUS", "208 ALREADY_REPORTED", "226 IM_USED", "300 MULTIPLE_CHOICES", "301 MOVED_PERMANENTLY", "302 FOUND", "302 MOVED_TEMPORARILY", "303 SEE_OTHER", "304 NOT_MODIFIED", "305 USE_PROXY", "307 TEMPORARY_REDIRECT", "308 PERMANENT_REDIRECT", "400 BAD_REQUEST", "401 UNAUTHORIZED", "402 PAYMENT_REQUIRED", "403 FORBIDDEN", "404 NOT_FOUND", "405 METHOD_NOT_ALLOWED", "406 NOT_ACCEPTABLE", "407 PROXY_AUTHENTICATION_REQUIRED", "408 REQUEST_TIMEOUT", "409 CONFLICT", "410 GONE", "411 LENGTH_REQUIRED", "412 PRECONDITION_FAILED", "413 PAYLOAD_TOO_LARGE", "413 REQUEST_ENTITY_TOO_LARGE", "414 URI_TOO_LONG", "414 REQUEST_URI_TOO_LONG", "415 UNSUPPORTED_MEDIA_TYPE", "416 REQUESTED_RANGE_NOT_SATISFIABLE", "417 EXPECTATION_FAILED", "418 I_AM_A_TEAPOT", "419 INSUFFICIENT_SPACE_ON_RESOURCE", "420 METHOD_FAILURE", "421 DESTINATION_LOCKED", "422 UNPROCESSABLE_ENTITY", "423 LOCKED", "424 FAILED_DEPENDENCY", "425 TOO_EARLY", "426 UPGRADE_REQUIRED", "428 PRECONDITION_REQUIRED", "429 TOO_MANY_REQUESTS", "431 REQUEST_HEADER_FIELDS_TOO_LARGE", "451 UNAVAILABLE_FOR_LEGAL_REASONS", "500 INTERNAL_SERVER_ERROR", "501 NOT_IMPLEMENTED", "502 BAD_GATEWAY", "503 SERVICE_UNAVAILABLE", "504 GATEWAY_TIMEOUT", "505 HTTP_VERSION_NOT_SUPPORTED", "506 VARIANT_ALSO_NEGOTIATES", "507 INSUFFICIENT_STORAGE", "508 LOOP_DETECTED", "509 BANDWIDTH_LIMIT_EXCEEDED", "510 NOT_EXTENDED", "511 NETWORK_AUTHENTICATION_REQUIRED"

  - `timestamp` (string)

  - `message` (string)

  - `detailedMessage` (string)
    Detailed error message providing additional context about the error.

  - `requestId` (string)
    Request identifier for tracking and debugging purposes.

  - `errors` (array)
    List of nested error details providing specific error information.

  - `errors.code` (string)
    Unique error code identifying the specific error type for programmatic handling.

  - `errors.message` (string)
    Human-readable error message describing the error condition.

  - `errors.reason` (string)
    Detailed explanation of the root cause or context that led to this error.

  - `errors.suggestion` (string)
    Actionable guidance or steps to resolve the error condition.


