"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""

from __future__ import annotations
import dataclasses
from typing import Dict, List, Optional


@dataclasses.dataclass
class InitiateOauth2SigninGlobals:
    shippo_api_version: Optional[str] = dataclasses.field(default=None, metadata={'header': { 'field_name': 'SHIPPO-API-VERSION', 'style': 'simple', 'explode': False }})
    r"""Optional string used to pick a non-default API version to use. See our <a href=\\"https://docs.goshippo.com/docs/api_concepts/apiversioning/\\">API version</a> guide."""
    



@dataclasses.dataclass
class InitiateOauth2SigninRequest:
    carrier_account_object_id: str = dataclasses.field(metadata={'path_param': { 'field_name': 'CarrierAccountObjectId', 'style': 'simple', 'explode': False }})
    r"""The carrier account ID (UUID) to start a signin process."""
    redirect_uri: str = dataclasses.field(metadata={'query_param': { 'field_name': 'redirect_uri', 'style': 'form', 'explode': True }})
    r"""Callback URL. The URL that tells the authorization server where to send the user back to after they approve the request."""
    state: Optional[str] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'state', 'style': 'form', 'explode': True }})
    r"""A random string generated by the consuming application and included in the request to prevent CSRF attacks. The consuming application checks that the same value is returned after the user authorizes Shippo."""
    



@dataclasses.dataclass
class InitiateOauth2SigninResponse:
    headers: Dict[str, List[str]] = dataclasses.field()
    

