// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.

import MiniSearch from 'minisearch';
import * as fs from 'node:fs/promises';
import * as path from 'node:path';
import { getLogger } from './logger';

type PerLanguageData = {
  method?: string;
  example?: string;
};

type MethodEntry = {
  name: string;
  endpoint: string;
  httpMethod: string;
  summary: string;
  description: string;
  stainlessPath: string;
  qualified: string;
  params?: string[];
  response?: string;
  markdown?: string;
  perLanguage?: Record<string, PerLanguageData>;
};

type ProseChunk = {
  content: string;
  tag: string;
  sectionContext?: string;
  source?: string;
};

type MiniSearchDocument = {
  id: string;
  kind: 'http_method' | 'prose';
  name?: string;
  endpoint?: string;
  summary?: string;
  description?: string;
  qualified?: string;
  stainlessPath?: string;
  content?: string;
  sectionContext?: string;
  _original: Record<string, unknown>;
};

type SearchResult = {
  results: (string | Record<string, unknown>)[];
};

const EMBEDDED_METHODS: MethodEntry[] = [
  {
    name: 'create',
    endpoint: '/api/v1/user-enrolments',
    httpMethod: 'post',
    summary: 'Create New User Enrolment',
    description:
      'Initiate the user enrolment process. This should always be the first step of the user creation process.',
    stainlessPath: '(resource) user-enrolments > (method) create',
    qualified: 'client.userEnrolments.create',
    params: [
      "enrolmentType: 'PERSONAL_ACCOUNT' | 'BUSINESS_ACCOUNT' | 'TEAM_MEMBER' | 'PERSONAL_LOAN_ACCOUNT';",
      'invitationId?: string;',
      'loanApplicationId?: string;',
      'X-Request-ID?: string;',
    ],
    response: '{ enrolmentId?: string; }',
    markdown:
      "## create\n\n`client.userEnrolments.create(enrolmentType: 'PERSONAL_ACCOUNT' | 'BUSINESS_ACCOUNT' | 'TEAM_MEMBER' | 'PERSONAL_LOAN_ACCOUNT', invitationId?: string, loanApplicationId?: string, X-Request-ID?: string): { enrolmentId?: string; }`\n\n**post** `/api/v1/user-enrolments`\n\nInitiate the user enrolment process. This should always be the first step of the user creation process.\n\n### Parameters\n\n- `enrolmentType: 'PERSONAL_ACCOUNT' | 'BUSINESS_ACCOUNT' | 'TEAM_MEMBER' | 'PERSONAL_LOAN_ACCOUNT'`\n  account type to be created\n\n- `invitationId?: string`\n  The invitation Id if the user was invited to create an account\n\n- `loanApplicationId?: string`\n  The loan application Id if the user is created part of loan origination\n\n- `X-Request-ID?: string`\n\n### Returns\n\n- `{ enrolmentId?: string; }`\n\n  - `enrolmentId?: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst userEnrolment = await client.userEnrolments.create({ enrolmentType: 'PERSONAL_ACCOUNT' });\n\nconsole.log(userEnrolment);\n```",
    perLanguage: {
      typescript: {
        method: 'client.userEnrolments.create',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst userEnrolment = await client.userEnrolments.create({ enrolmentType: 'PERSONAL_ACCOUNT' });\n\nconsole.log(userEnrolment.enrolmentId);",
      },
      python: {
        method: 'user_enrolments.create',
        example:
          'from plumery import Plumery\n\nclient = Plumery()\nuser_enrolment = client.user_enrolments.create(\n    enrolment_type="PERSONAL_ACCOUNT",\n)\nprint(user_enrolment.enrolment_id)',
      },
      java: {
        method: 'userEnrolments().create',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.userenrolments.UserEnrolmentCreateParams;\nimport com.plumery.api.models.userenrolments.UserEnrolmentCreateResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        UserEnrolmentCreateParams params = UserEnrolmentCreateParams.builder()\n            .enrolmentType(UserEnrolmentCreateParams.EnrolmentType.PERSONAL_ACCOUNT)\n            .build();\n        UserEnrolmentCreateResponse userEnrolment = client.userEnrolments().create(params);\n    }\n}',
      },
      kotlin: {
        method: 'userEnrolments().create',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.userenrolments.UserEnrolmentCreateParams\nimport com.plumery.api.models.userenrolments.UserEnrolmentCreateResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: UserEnrolmentCreateParams = UserEnrolmentCreateParams.builder()\n        .enrolmentType(UserEnrolmentCreateParams.EnrolmentType.PERSONAL_ACCOUNT)\n        .build()\n    val userEnrolment: UserEnrolmentCreateResponse = client.userEnrolments().create(params)\n}',
      },
      go: {
        method: 'client.UserEnrolments.New',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tuserEnrolment, err := client.UserEnrolments.New(context.TODO(), plumery.UserEnrolmentNewParams{\n\t\tEnrolmentType: plumery.F(plumery.UserEnrolmentNewParamsEnrolmentTypePersonalAccount),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", userEnrolment.EnrolmentID)\n}\n',
      },
      cli: {
        method: 'user-enrolments create',
        example:
          "plumery user-enrolments create \\\n  --session 'My Session' \\\n  --enrolment-type PERSONAL_ACCOUNT",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/user-enrolments \\\n    -H \'Content-Type: application/json\' \\\n    -d \'{\n          "enrolmentType": "PERSONAL_ACCOUNT",\n          "invitationId": "36a22460-ebc8-4ffe-a213-1683c5a420c5",\n          "loanApplicationId": "611e9adb-d6eb-4fb2-85c0-5f52a4a40a76"\n        }\'',
      },
    },
  },
  {
    name: 'setPhoneNumber',
    endpoint: '/api/v1/user-enrolments/{enrolmentId}:set-phone-number',
    httpMethod: 'post',
    summary: 'Set Phone Number',
    description:
      "Initiates phone number setting for the user.\n\nThis will initiate a one-time password sent as an SMS to the phone number provided to ensure its authenticity.\n\nOnce the OTP is verified, using the 'Verify phone number' endpoint, the phone number will be stored for the user.",
    stainlessPath: '(resource) user-enrolments > (method) setPhoneNumber',
    qualified: 'client.userEnrolments.setPhoneNumber',
    params: [
      'enrolmentId: string;',
      'phoneNumber: string;',
      'accept-language?: string;',
      'X-Request-ID?: string;',
    ],
    response:
      "{ verification?: { endpoint?: '/api/v1/user-enrolments/{enrolmentId}:verify-phone-number'; method?: 'TOTP-SMS'; }; }",
    markdown:
      "## setPhoneNumber\n\n`client.userEnrolments.setPhoneNumber(enrolmentId: string, phoneNumber: string, accept-language?: string, X-Request-ID?: string): { verification?: object; }`\n\n**post** `/api/v1/user-enrolments/{enrolmentId}:set-phone-number`\n\nInitiates phone number setting for the user.\n\nThis will initiate a one-time password sent as an SMS to the phone number provided to ensure its authenticity.\n\nOnce the OTP is verified, using the 'Verify phone number' endpoint, the phone number will be stored for the user.\n\n### Parameters\n\n- `enrolmentId: string`\n\n- `phoneNumber: string`\n\n- `accept-language?: string`\n\n- `X-Request-ID?: string`\n\n### Returns\n\n- `{ verification?: { endpoint?: '/api/v1/user-enrolments/{enrolmentId}:verify-phone-number'; method?: 'TOTP-SMS'; }; }`\n  Indicates the next step to take after setting the phone number\n\n  - `verification?: { endpoint?: '/api/v1/user-enrolments/{enrolmentId}:verify-phone-number'; method?: 'TOTP-SMS'; }`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.userEnrolments.setPhoneNumber('36a22460-ebc8-4ffe-a213-1683c5a420c5', { phoneNumber: '+37069584868' });\n\nconsole.log(response);\n```",
    perLanguage: {
      typescript: {
        method: 'client.userEnrolments.setPhoneNumber',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.userEnrolments.setPhoneNumber(\n  '36a22460-ebc8-4ffe-a213-1683c5a420c5',\n  { phoneNumber: '+37069584868' },\n);\n\nconsole.log(response.verification);",
      },
      python: {
        method: 'user_enrolments.set_phone_number',
        example:
          'from plumery import Plumery\n\nclient = Plumery()\nresponse = client.user_enrolments.set_phone_number(\n    enrolment_id="36a22460-ebc8-4ffe-a213-1683c5a420c5",\n    phone_number="+37069584868",\n)\nprint(response.verification)',
      },
      java: {
        method: 'userEnrolments().setPhoneNumber',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.userenrolments.UserEnrolmentSetPhoneNumberParams;\nimport com.plumery.api.models.userenrolments.UserEnrolmentSetPhoneNumberResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        UserEnrolmentSetPhoneNumberParams params = UserEnrolmentSetPhoneNumberParams.builder()\n            .enrolmentId("36a22460-ebc8-4ffe-a213-1683c5a420c5")\n            .phoneNumber("+37069584868")\n            .build();\n        UserEnrolmentSetPhoneNumberResponse response = client.userEnrolments().setPhoneNumber(params);\n    }\n}',
      },
      kotlin: {
        method: 'userEnrolments().setPhoneNumber',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.userenrolments.UserEnrolmentSetPhoneNumberParams\nimport com.plumery.api.models.userenrolments.UserEnrolmentSetPhoneNumberResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: UserEnrolmentSetPhoneNumberParams = UserEnrolmentSetPhoneNumberParams.builder()\n        .enrolmentId("36a22460-ebc8-4ffe-a213-1683c5a420c5")\n        .phoneNumber("+37069584868")\n        .build()\n    val response: UserEnrolmentSetPhoneNumberResponse = client.userEnrolments().setPhoneNumber(params)\n}',
      },
      go: {
        method: 'client.UserEnrolments.SetPhoneNumber',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tresponse, err := client.UserEnrolments.SetPhoneNumber(\n\t\tcontext.TODO(),\n\t\t"36a22460-ebc8-4ffe-a213-1683c5a420c5",\n\t\tplumery.UserEnrolmentSetPhoneNumberParams{\n\t\t\tPhoneNumber: plumery.F("+37069584868"),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.Verification)\n}\n',
      },
      cli: {
        method: 'user-enrolments setPhoneNumber',
        example:
          "plumery user-enrolments set-phone-number \\\n  --session 'My Session' \\\n  --enrolment-id 36a22460-ebc8-4ffe-a213-1683c5a420c5 \\\n  --phone-number +37069584868",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/user-enrolments/$ENROLMENT_ID:set-phone-number \\\n    -H \'Content-Type: application/json\' \\\n    -d \'{\n          "phoneNumber": "+37069584868"\n        }\'',
      },
    },
  },
  {
    name: 'verifyPhoneNumber',
    endpoint: '/api/v1/user-enrolments/{enrolmentId}:verify-phone-number',
    httpMethod: 'post',
    summary: 'Verify Phone Number',
    description: 'Verify the one-time password sent to the phone number set by the user.',
    stainlessPath: '(resource) user-enrolments > (method) verifyPhoneNumber',
    qualified: 'client.userEnrolments.verifyPhoneNumber',
    params: ['enrolmentId: string;', 'otp: string;', 'X-Request-ID?: string;'],
    markdown:
      "## verifyPhoneNumber\n\n`client.userEnrolments.verifyPhoneNumber(enrolmentId: string, otp: string, X-Request-ID?: string): void`\n\n**post** `/api/v1/user-enrolments/{enrolmentId}:verify-phone-number`\n\nVerify the one-time password sent to the phone number set by the user.\n\n### Parameters\n\n- `enrolmentId: string`\n\n- `otp: string`\n  The One-Time Password (OTP) sent to the user\n\n- `X-Request-ID?: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nawait client.userEnrolments.verifyPhoneNumber('36a22460-ebc8-4ffe-a213-1683c5a420c5', { otp: '123456' })\n```",
    perLanguage: {
      typescript: {
        method: 'client.userEnrolments.verifyPhoneNumber',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery();\n\nawait client.userEnrolments.verifyPhoneNumber('36a22460-ebc8-4ffe-a213-1683c5a420c5', {\n  otp: '123456',\n});",
      },
      python: {
        method: 'user_enrolments.verify_phone_number',
        example:
          'from plumery import Plumery\n\nclient = Plumery()\nclient.user_enrolments.verify_phone_number(\n    enrolment_id="36a22460-ebc8-4ffe-a213-1683c5a420c5",\n    otp="123456",\n)',
      },
      java: {
        method: 'userEnrolments().verifyPhoneNumber',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.userenrolments.UserEnrolmentVerifyPhoneNumberParams;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        UserEnrolmentVerifyPhoneNumberParams params = UserEnrolmentVerifyPhoneNumberParams.builder()\n            .enrolmentId("36a22460-ebc8-4ffe-a213-1683c5a420c5")\n            .otp("123456")\n            .build();\n        client.userEnrolments().verifyPhoneNumber(params);\n    }\n}',
      },
      kotlin: {
        method: 'userEnrolments().verifyPhoneNumber',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.userenrolments.UserEnrolmentVerifyPhoneNumberParams\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: UserEnrolmentVerifyPhoneNumberParams = UserEnrolmentVerifyPhoneNumberParams.builder()\n        .enrolmentId("36a22460-ebc8-4ffe-a213-1683c5a420c5")\n        .otp("123456")\n        .build()\n    client.userEnrolments().verifyPhoneNumber(params)\n}',
      },
      go: {
        method: 'client.UserEnrolments.VerifyPhoneNumber',
        example:
          'package main\n\nimport (\n\t"context"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\terr := client.UserEnrolments.VerifyPhoneNumber(\n\t\tcontext.TODO(),\n\t\t"36a22460-ebc8-4ffe-a213-1683c5a420c5",\n\t\tplumery.UserEnrolmentVerifyPhoneNumberParams{\n\t\t\tOtp: plumery.F("123456"),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
      },
      cli: {
        method: 'user-enrolments verifyPhoneNumber',
        example:
          "plumery user-enrolments verify-phone-number \\\n  --session 'My Session' \\\n  --enrolment-id 36a22460-ebc8-4ffe-a213-1683c5a420c5 \\\n  --otp 123456",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/user-enrolments/$ENROLMENT_ID:verify-phone-number \\\n    -H \'Content-Type: application/json\' \\\n    -d \'{\n          "otp": "123456"\n        }\'',
      },
    },
  },
  {
    name: 'setEmailAddress',
    endpoint: '/api/v1/user-enrolments/{enrolmentId}:set-email-address',
    httpMethod: 'post',
    summary: 'Set Email Address',
    description:
      "Initiates email address setting for the user.\n\nThis will initiate a one-time password sent to the email address provided to ensure its authenticity.\n\nOnce the OTP is verified, using the 'Verify Email Address' endpoint, the email address will be stored for the user.\n\n**Note:** if not verified with OTP, the email address will not be stored for the user.",
    stainlessPath: '(resource) user-enrolments > (method) setEmailAddress',
    qualified: 'client.userEnrolments.setEmailAddress',
    params: [
      'enrolmentId: string;',
      'emailAddress: string;',
      'accept-language?: string;',
      'X-Request-ID?: string;',
    ],
    response:
      "{ verification?: { endpoint?: '/api/v1/user-enrolments/{enrolmentId}:verify-email-address'; method?: 'TOTP-EMAIL'; }; }",
    markdown:
      "## setEmailAddress\n\n`client.userEnrolments.setEmailAddress(enrolmentId: string, emailAddress: string, accept-language?: string, X-Request-ID?: string): { verification?: object; }`\n\n**post** `/api/v1/user-enrolments/{enrolmentId}:set-email-address`\n\nInitiates email address setting for the user.\n\nThis will initiate a one-time password sent to the email address provided to ensure its authenticity.\n\nOnce the OTP is verified, using the 'Verify Email Address' endpoint, the email address will be stored for the user.\n\n**Note:** if not verified with OTP, the email address will not be stored for the user.\n\n### Parameters\n\n- `enrolmentId: string`\n\n- `emailAddress: string`\n  A valid email address\n\n- `accept-language?: string`\n\n- `X-Request-ID?: string`\n\n### Returns\n\n- `{ verification?: { endpoint?: '/api/v1/user-enrolments/{enrolmentId}:verify-email-address'; method?: 'TOTP-EMAIL'; }; }`\n  Indicates the next step to take after setting email address\n\n  - `verification?: { endpoint?: '/api/v1/user-enrolments/{enrolmentId}:verify-email-address'; method?: 'TOTP-EMAIL'; }`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.userEnrolments.setEmailAddress('36a22460-ebc8-4ffe-a213-1683c5a420c5', { emailAddress: 'user@example.com' });\n\nconsole.log(response);\n```",
    perLanguage: {
      typescript: {
        method: 'client.userEnrolments.setEmailAddress',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.userEnrolments.setEmailAddress(\n  '36a22460-ebc8-4ffe-a213-1683c5a420c5',\n  { emailAddress: 'user@example.com' },\n);\n\nconsole.log(response.verification);",
      },
      python: {
        method: 'user_enrolments.set_email_address',
        example:
          'from plumery import Plumery\n\nclient = Plumery()\nresponse = client.user_enrolments.set_email_address(\n    enrolment_id="36a22460-ebc8-4ffe-a213-1683c5a420c5",\n    email_address="user@example.com",\n)\nprint(response.verification)',
      },
      java: {
        method: 'userEnrolments().setEmailAddress',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.userenrolments.UserEnrolmentSetEmailAddressParams;\nimport com.plumery.api.models.userenrolments.UserEnrolmentSetEmailAddressResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        UserEnrolmentSetEmailAddressParams params = UserEnrolmentSetEmailAddressParams.builder()\n            .enrolmentId("36a22460-ebc8-4ffe-a213-1683c5a420c5")\n            .emailAddress("user@example.com")\n            .build();\n        UserEnrolmentSetEmailAddressResponse response = client.userEnrolments().setEmailAddress(params);\n    }\n}',
      },
      kotlin: {
        method: 'userEnrolments().setEmailAddress',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.userenrolments.UserEnrolmentSetEmailAddressParams\nimport com.plumery.api.models.userenrolments.UserEnrolmentSetEmailAddressResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: UserEnrolmentSetEmailAddressParams = UserEnrolmentSetEmailAddressParams.builder()\n        .enrolmentId("36a22460-ebc8-4ffe-a213-1683c5a420c5")\n        .emailAddress("user@example.com")\n        .build()\n    val response: UserEnrolmentSetEmailAddressResponse = client.userEnrolments().setEmailAddress(params)\n}',
      },
      go: {
        method: 'client.UserEnrolments.SetEmailAddress',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tresponse, err := client.UserEnrolments.SetEmailAddress(\n\t\tcontext.TODO(),\n\t\t"36a22460-ebc8-4ffe-a213-1683c5a420c5",\n\t\tplumery.UserEnrolmentSetEmailAddressParams{\n\t\t\tEmailAddress: plumery.F("user@example.com"),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.Verification)\n}\n',
      },
      cli: {
        method: 'user-enrolments setEmailAddress',
        example:
          "plumery user-enrolments set-email-address \\\n  --session 'My Session' \\\n  --enrolment-id 36a22460-ebc8-4ffe-a213-1683c5a420c5 \\\n  --email-address user@example.com",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/user-enrolments/$ENROLMENT_ID:set-email-address \\\n    -H \'Content-Type: application/json\' \\\n    -d \'{\n          "emailAddress": "user@example.com"\n        }\'',
      },
    },
  },
  {
    name: 'verifyEmailAddress',
    endpoint: '/api/v1/user-enrolments/{enrolmentId}:verify-email-address',
    httpMethod: 'post',
    summary: 'Verify Email Address',
    description:
      'Verify the one-time password sent to the email address set by the user.\n\n**Note:** if not verified with OTP, the email address will not be stored for the user.\n',
    stainlessPath: '(resource) user-enrolments > (method) verifyEmailAddress',
    qualified: 'client.userEnrolments.verifyEmailAddress',
    params: ['enrolmentId: string;', 'otp: string;', 'X-Request-ID?: string;'],
    markdown:
      "## verifyEmailAddress\n\n`client.userEnrolments.verifyEmailAddress(enrolmentId: string, otp: string, X-Request-ID?: string): void`\n\n**post** `/api/v1/user-enrolments/{enrolmentId}:verify-email-address`\n\nVerify the one-time password sent to the email address set by the user.\n\n**Note:** if not verified with OTP, the email address will not be stored for the user.\n\n\n### Parameters\n\n- `enrolmentId: string`\n\n- `otp: string`\n  The One-Time Password (OTP) sent to the user\n\n- `X-Request-ID?: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nawait client.userEnrolments.verifyEmailAddress('36a22460-ebc8-4ffe-a213-1683c5a420c5', { otp: '123456' })\n```",
    perLanguage: {
      typescript: {
        method: 'client.userEnrolments.verifyEmailAddress',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery();\n\nawait client.userEnrolments.verifyEmailAddress('36a22460-ebc8-4ffe-a213-1683c5a420c5', {\n  otp: '123456',\n});",
      },
      python: {
        method: 'user_enrolments.verify_email_address',
        example:
          'from plumery import Plumery\n\nclient = Plumery()\nclient.user_enrolments.verify_email_address(\n    enrolment_id="36a22460-ebc8-4ffe-a213-1683c5a420c5",\n    otp="123456",\n)',
      },
      java: {
        method: 'userEnrolments().verifyEmailAddress',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.userenrolments.UserEnrolmentVerifyEmailAddressParams;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        UserEnrolmentVerifyEmailAddressParams params = UserEnrolmentVerifyEmailAddressParams.builder()\n            .enrolmentId("36a22460-ebc8-4ffe-a213-1683c5a420c5")\n            .otp("123456")\n            .build();\n        client.userEnrolments().verifyEmailAddress(params);\n    }\n}',
      },
      kotlin: {
        method: 'userEnrolments().verifyEmailAddress',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.userenrolments.UserEnrolmentVerifyEmailAddressParams\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: UserEnrolmentVerifyEmailAddressParams = UserEnrolmentVerifyEmailAddressParams.builder()\n        .enrolmentId("36a22460-ebc8-4ffe-a213-1683c5a420c5")\n        .otp("123456")\n        .build()\n    client.userEnrolments().verifyEmailAddress(params)\n}',
      },
      go: {
        method: 'client.UserEnrolments.VerifyEmailAddress',
        example:
          'package main\n\nimport (\n\t"context"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\terr := client.UserEnrolments.VerifyEmailAddress(\n\t\tcontext.TODO(),\n\t\t"36a22460-ebc8-4ffe-a213-1683c5a420c5",\n\t\tplumery.UserEnrolmentVerifyEmailAddressParams{\n\t\t\tOtp: plumery.F("123456"),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
      },
      cli: {
        method: 'user-enrolments verifyEmailAddress',
        example:
          "plumery user-enrolments verify-email-address \\\n  --session 'My Session' \\\n  --enrolment-id 36a22460-ebc8-4ffe-a213-1683c5a420c5 \\\n  --otp 123456",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/user-enrolments/$ENROLMENT_ID:verify-email-address \\\n    -H \'Content-Type: application/json\' \\\n    -d \'{\n          "otp": "123456"\n        }\'',
      },
    },
  },
  {
    name: 'initiateEmailAddressVerification',
    endpoint: '/api/v1/user-enrolments/{enrolmentId}:initiate-email-address-verification',
    httpMethod: 'post',
    summary: 'Send Email OTP',
    description: 'Sending the one-time password to the email address associated with enrolment.\n',
    stainlessPath: '(resource) user-enrolments > (method) initiateEmailAddressVerification',
    qualified: 'client.userEnrolments.initiateEmailAddressVerification',
    params: ['enrolmentId: string;', 'accept-language?: string;', 'X-Request-ID?: string;'],
    response:
      "{ verification?: { endpoint?: '/api/v1/user-enrolments/{enrolmentId}:verify-email-address'; method?: 'TOTP-EMAIL'; }; }",
    markdown:
      "## initiateEmailAddressVerification\n\n`client.userEnrolments.initiateEmailAddressVerification(enrolmentId: string, accept-language?: string, X-Request-ID?: string): { verification?: object; }`\n\n**post** `/api/v1/user-enrolments/{enrolmentId}:initiate-email-address-verification`\n\nSending the one-time password to the email address associated with enrolment.\n\n\n### Parameters\n\n- `enrolmentId: string`\n\n- `accept-language?: string`\n\n- `X-Request-ID?: string`\n\n### Returns\n\n- `{ verification?: { endpoint?: '/api/v1/user-enrolments/{enrolmentId}:verify-email-address'; method?: 'TOTP-EMAIL'; }; }`\n  Indicates the next step to take after setting email address\n\n  - `verification?: { endpoint?: '/api/v1/user-enrolments/{enrolmentId}:verify-email-address'; method?: 'TOTP-EMAIL'; }`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.userEnrolments.initiateEmailAddressVerification('36a22460-ebc8-4ffe-a213-1683c5a420c5');\n\nconsole.log(response);\n```",
    perLanguage: {
      typescript: {
        method: 'client.userEnrolments.initiateEmailAddressVerification',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.userEnrolments.initiateEmailAddressVerification(\n  '36a22460-ebc8-4ffe-a213-1683c5a420c5',\n);\n\nconsole.log(response.verification);",
      },
      python: {
        method: 'user_enrolments.initiate_email_address_verification',
        example:
          'from plumery import Plumery\n\nclient = Plumery()\nresponse = client.user_enrolments.initiate_email_address_verification(\n    enrolment_id="36a22460-ebc8-4ffe-a213-1683c5a420c5",\n)\nprint(response.verification)',
      },
      java: {
        method: 'userEnrolments().initiateEmailAddressVerification',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.userenrolments.UserEnrolmentInitiateEmailAddressVerificationParams;\nimport com.plumery.api.models.userenrolments.UserEnrolmentInitiateEmailAddressVerificationResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        UserEnrolmentInitiateEmailAddressVerificationResponse response = client.userEnrolments().initiateEmailAddressVerification("36a22460-ebc8-4ffe-a213-1683c5a420c5");\n    }\n}',
      },
      kotlin: {
        method: 'userEnrolments().initiateEmailAddressVerification',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.userenrolments.UserEnrolmentInitiateEmailAddressVerificationParams\nimport com.plumery.api.models.userenrolments.UserEnrolmentInitiateEmailAddressVerificationResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val response: UserEnrolmentInitiateEmailAddressVerificationResponse = client.userEnrolments().initiateEmailAddressVerification("36a22460-ebc8-4ffe-a213-1683c5a420c5")\n}',
      },
      go: {
        method: 'client.UserEnrolments.InitiateEmailAddressVerification',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tresponse, err := client.UserEnrolments.InitiateEmailAddressVerification(\n\t\tcontext.TODO(),\n\t\t"36a22460-ebc8-4ffe-a213-1683c5a420c5",\n\t\tplumery.UserEnrolmentInitiateEmailAddressVerificationParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.Verification)\n}\n',
      },
      cli: {
        method: 'user-enrolments initiateEmailAddressVerification',
        example:
          "plumery user-enrolments initiate-email-address-verification \\\n  --session 'My Session' \\\n  --enrolment-id 36a22460-ebc8-4ffe-a213-1683c5a420c5",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/user-enrolments/$ENROLMENT_ID:initiate-email-address-verification \\\n    -X POST',
      },
    },
  },
  {
    name: 'setUserProfile',
    endpoint: '/api/v1/user-enrolments/{enrolmentId}:set-user-profile',
    httpMethod: 'post',
    summary: 'Set User Profile',
    description: 'Set user profile',
    stainlessPath: '(resource) user-enrolments > (method) setUserProfile',
    qualified: 'client.userEnrolments.setUserProfile',
    params: [
      'enrolmentId: string;',
      'firstName: string;',
      'lastName: string;',
      'countryCode?: string;',
      'middleNames?: string;',
      'personalId?: string;',
      'salutation?: string;',
      'title?: string;',
      'X-Request-ID?: string;',
    ],
    markdown:
      "## setUserProfile\n\n`client.userEnrolments.setUserProfile(enrolmentId: string, firstName: string, lastName: string, countryCode?: string, middleNames?: string, personalId?: string, salutation?: string, title?: string, X-Request-ID?: string): void`\n\n**post** `/api/v1/user-enrolments/{enrolmentId}:set-user-profile`\n\nSet user profile\n\n### Parameters\n\n- `enrolmentId: string`\n\n- `firstName: string`\n  User first name / given name\n\n- `lastName: string`\n  User last name / surname\n\n- `countryCode?: string`\n  Nation with its own government. ISO 3166, Alpha-2 code\n\n\n- `middleNames?: string`\n  A space-separated string containing one or multiple middle names of the individual\n\n- `personalId?: string`\n  Personal id provided by the user\n\n\n- `salutation?: string`\n  Formal greeting for the individual\n\n- `title?: string`\n  Professional or academic title of the individual\n\n- `X-Request-ID?: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nawait client.userEnrolments.setUserProfile('36a22460-ebc8-4ffe-a213-1683c5a420c5', { firstName: 'John', lastName: 'Doe' })\n```",
    perLanguage: {
      typescript: {
        method: 'client.userEnrolments.setUserProfile',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery();\n\nawait client.userEnrolments.setUserProfile('36a22460-ebc8-4ffe-a213-1683c5a420c5', {\n  firstName: 'John',\n  lastName: 'Doe',\n});",
      },
      python: {
        method: 'user_enrolments.set_user_profile',
        example:
          'from plumery import Plumery\n\nclient = Plumery()\nclient.user_enrolments.set_user_profile(\n    enrolment_id="36a22460-ebc8-4ffe-a213-1683c5a420c5",\n    first_name="John",\n    last_name="Doe",\n)',
      },
      java: {
        method: 'userEnrolments().setUserProfile',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.userenrolments.UserEnrolmentSetUserProfileParams;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        UserEnrolmentSetUserProfileParams params = UserEnrolmentSetUserProfileParams.builder()\n            .enrolmentId("36a22460-ebc8-4ffe-a213-1683c5a420c5")\n            .firstName("John")\n            .lastName("Doe")\n            .build();\n        client.userEnrolments().setUserProfile(params);\n    }\n}',
      },
      kotlin: {
        method: 'userEnrolments().setUserProfile',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.userenrolments.UserEnrolmentSetUserProfileParams\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: UserEnrolmentSetUserProfileParams = UserEnrolmentSetUserProfileParams.builder()\n        .enrolmentId("36a22460-ebc8-4ffe-a213-1683c5a420c5")\n        .firstName("John")\n        .lastName("Doe")\n        .build()\n    client.userEnrolments().setUserProfile(params)\n}',
      },
      go: {
        method: 'client.UserEnrolments.SetUserProfile',
        example:
          'package main\n\nimport (\n\t"context"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\terr := client.UserEnrolments.SetUserProfile(\n\t\tcontext.TODO(),\n\t\t"36a22460-ebc8-4ffe-a213-1683c5a420c5",\n\t\tplumery.UserEnrolmentSetUserProfileParams{\n\t\t\tFirstName: plumery.F("John"),\n\t\t\tLastName:  plumery.F("Doe"),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
      },
      cli: {
        method: 'user-enrolments setUserProfile',
        example:
          "plumery user-enrolments set-user-profile \\\n  --session 'My Session' \\\n  --enrolment-id 36a22460-ebc8-4ffe-a213-1683c5a420c5 \\\n  --first-name John \\\n  --last-name Doe",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/user-enrolments/$ENROLMENT_ID:set-user-profile \\\n    -H \'Content-Type: application/json\' \\\n    -d \'{\n          "firstName": "John",\n          "lastName": "Doe",\n          "countryCode": "UK",\n          "middleNames": "Vigo Sullivan",\n          "personalId": "personalId",\n          "salutation": "Mr",\n          "title": "Dr."\n        }\'',
      },
    },
  },
  {
    name: 'setOrganisationPartyProfile',
    endpoint: '/api/v1/user-enrolments/{enrolmentId}:set-organisation-party-profile',
    httpMethod: 'post',
    summary: 'Set Organisation Party Profile',
    description: 'Set organisation party profile',
    stainlessPath: '(resource) user-enrolments > (method) setOrganisationPartyProfile',
    qualified: 'client.userEnrolments.setOrganisationPartyProfile',
    params: [
      'enrolmentId: string;',
      'categories?: string[];',
      'country?: string;',
      'dateOfIncorporation?: string;',
      'description?: string;',
      'legalName?: string;',
      'legalType?: string;',
      'operatingAddress?: { buildingName?: string; buildingNumber?: string; country?: string; countrySubDivision?: string; districtName?: string; floor?: string; postBox?: string; postCode?: string; streetName?: string; suite?: string; townLocationName?: string; townName?: string; };',
      'postalAddress?: { buildingName?: string; buildingNumber?: string; country?: string; countrySubDivision?: string; districtName?: string; floor?: string; postBox?: string; postCode?: string; streetName?: string; suite?: string; townLocationName?: string; townName?: string; };',
      'registrationAddress?: { buildingName?: string; buildingNumber?: string; country?: string; countrySubDivision?: string; districtName?: string; floor?: string; postBox?: string; postCode?: string; streetName?: string; suite?: string; townLocationName?: string; townName?: string; };',
      'registrationNumber?: string;',
      'tradingName?: string;',
      'vatNumber?: string;',
      'website?: string;',
      'X-Request-ID?: string;',
    ],
    markdown:
      "## setOrganisationPartyProfile\n\n`client.userEnrolments.setOrganisationPartyProfile(enrolmentId: string, categories?: string[], country?: string, dateOfIncorporation?: string, description?: string, legalName?: string, legalType?: string, operatingAddress?: { buildingName?: string; buildingNumber?: string; country?: string; countrySubDivision?: string; districtName?: string; floor?: string; postBox?: string; postCode?: string; streetName?: string; suite?: string; townLocationName?: string; townName?: string; }, postalAddress?: { buildingName?: string; buildingNumber?: string; country?: string; countrySubDivision?: string; districtName?: string; floor?: string; postBox?: string; postCode?: string; streetName?: string; suite?: string; townLocationName?: string; townName?: string; }, registrationAddress?: { buildingName?: string; buildingNumber?: string; country?: string; countrySubDivision?: string; districtName?: string; floor?: string; postBox?: string; postCode?: string; streetName?: string; suite?: string; townLocationName?: string; townName?: string; }, registrationNumber?: string, tradingName?: string, vatNumber?: string, website?: string, X-Request-ID?: string): void`\n\n**post** `/api/v1/user-enrolments/{enrolmentId}:set-organisation-party-profile`\n\nSet organisation party profile\n\n### Parameters\n\n- `enrolmentId: string`\n\n- `categories?: string[]`\n\n- `country?: string`\n  ISO 3166-1 alpha-2 country code where the company is registered\n\n- `dateOfIncorporation?: string`\n  Date of incorporation of the organisation\n\n- `description?: string`\n  Description of the organisation\n\n- `legalName?: string`\n  Legal name of the organisation\n\n- `legalType?: string`\n  Legal type of the organisation\n\n- `operatingAddress?: { buildingName?: string; buildingNumber?: string; country?: string; countrySubDivision?: string; districtName?: string; floor?: string; postBox?: string; postCode?: string; streetName?: string; suite?: string; townLocationName?: string; townName?: string; }`\n  Operating address of the organisation\n  - `buildingName?: string`\n    Name of the building or house\n\n  - `buildingNumber?: string`\n    Number that identifies the position of a building on a street\n\n  - `country?: string`\n    Nation with its own government. ISO 3166, Alpha-2 code\n\n  - `countrySubDivision?: string`\n    Identifies a subdivision of a country such as state, region, county\n\n  - `districtName?: string`\n    Identifies a subdivision within a country sub-division\n\n  - `floor?: string`\n    Floor or storey within a building\n\n  - `postBox?: string`\n    Numbered box in a post office, assigned to a person or organisation, where letters are kept until called for\n\n  - `postCode?: string`\n    Identifier consisting of a group of letters and/or numbers that is added to a postal address to assist the sorting of mail\n\n  - `streetName?: string`\n    Name of a street or thoroughfare\n\n  - `suite?: string`\n    Building room number\n\n  - `townLocationName?: string`\n    Specific location name within the town\n\n  - `townName?: string`\n    Name of a built-up area, with defined boundaries, and a local government\n\n\n- `postalAddress?: { buildingName?: string; buildingNumber?: string; country?: string; countrySubDivision?: string; districtName?: string; floor?: string; postBox?: string; postCode?: string; streetName?: string; suite?: string; townLocationName?: string; townName?: string; }`\n  Postal address of the organisation\n  - `buildingName?: string`\n    Name of the building or house\n\n  - `buildingNumber?: string`\n    Number that identifies the position of a building on a street\n\n  - `country?: string`\n    Nation with its own government. ISO 3166, Alpha-2 code\n\n  - `countrySubDivision?: string`\n    Identifies a subdivision of a country such as state, region, county\n\n  - `districtName?: string`\n    Identifies a subdivision within a country sub-division\n\n  - `floor?: string`\n    Floor or storey within a building\n\n  - `postBox?: string`\n    Numbered box in a post office, assigned to a person or organisation, where letters are kept until called for\n\n  - `postCode?: string`\n    Identifier consisting of a group of letters and/or numbers that is added to a postal address to assist the sorting of mail\n\n  - `streetName?: string`\n    Name of a street or thoroughfare\n\n  - `suite?: string`\n    Building room number\n\n  - `townLocationName?: string`\n    Specific location name within the town\n\n  - `townName?: string`\n    Name of a built-up area, with defined boundaries, and a local government\n\n\n- `registrationAddress?: { buildingName?: string; buildingNumber?: string; country?: string; countrySubDivision?: string; districtName?: string; floor?: string; postBox?: string; postCode?: string; streetName?: string; suite?: string; townLocationName?: string; townName?: string; }`\n  Registered address of the organisation\n  - `buildingName?: string`\n    Name of the building or house\n\n  - `buildingNumber?: string`\n    Number that identifies the position of a building on a street\n\n  - `country?: string`\n    Nation with its own government. ISO 3166, Alpha-2 code\n\n  - `countrySubDivision?: string`\n    Identifies a subdivision of a country such as state, region, county\n\n  - `districtName?: string`\n    Identifies a subdivision within a country sub-division\n\n  - `floor?: string`\n    Floor or storey within a building\n\n  - `postBox?: string`\n    Numbered box in a post office, assigned to a person or organisation, where letters are kept until called for\n\n  - `postCode?: string`\n    Identifier consisting of a group of letters and/or numbers that is added to a postal address to assist the sorting of mail\n\n  - `streetName?: string`\n    Name of a street or thoroughfare\n\n  - `suite?: string`\n    Building room number\n\n  - `townLocationName?: string`\n    Specific location name within the town\n\n  - `townName?: string`\n    Name of a built-up area, with defined boundaries, and a local government\n\n\n- `registrationNumber?: string`\n  Registration number of the organisation\n\n- `tradingName?: string`\n  Trading name of the organisation\n\n- `vatNumber?: string`\n  Value Added Tax number of the organisation\n\n- `website?: string`\n  Website of the organisation\n\n- `X-Request-ID?: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nawait client.userEnrolments.setOrganisationPartyProfile('36a22460-ebc8-4ffe-a213-1683c5a420c5')\n```",
    perLanguage: {
      typescript: {
        method: 'client.userEnrolments.setOrganisationPartyProfile',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery();\n\nawait client.userEnrolments.setOrganisationPartyProfile('36a22460-ebc8-4ffe-a213-1683c5a420c5');",
      },
      python: {
        method: 'user_enrolments.set_organisation_party_profile',
        example:
          'from plumery import Plumery\n\nclient = Plumery()\nclient.user_enrolments.set_organisation_party_profile(\n    enrolment_id="36a22460-ebc8-4ffe-a213-1683c5a420c5",\n)',
      },
      java: {
        method: 'userEnrolments().setOrganisationPartyProfile',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.userenrolments.UserEnrolmentSetOrganisationPartyProfileParams;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        client.userEnrolments().setOrganisationPartyProfile("36a22460-ebc8-4ffe-a213-1683c5a420c5");\n    }\n}',
      },
      kotlin: {
        method: 'userEnrolments().setOrganisationPartyProfile',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.userenrolments.UserEnrolmentSetOrganisationPartyProfileParams\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    client.userEnrolments().setOrganisationPartyProfile("36a22460-ebc8-4ffe-a213-1683c5a420c5")\n}',
      },
      go: {
        method: 'client.UserEnrolments.SetOrganisationPartyProfile',
        example:
          'package main\n\nimport (\n\t"context"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\terr := client.UserEnrolments.SetOrganisationPartyProfile(\n\t\tcontext.TODO(),\n\t\t"36a22460-ebc8-4ffe-a213-1683c5a420c5",\n\t\tplumery.UserEnrolmentSetOrganisationPartyProfileParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
      },
      cli: {
        method: 'user-enrolments setOrganisationPartyProfile',
        example:
          "plumery user-enrolments set-organisation-party-profile \\\n  --session 'My Session' \\\n  --enrolment-id 36a22460-ebc8-4ffe-a213-1683c5a420c5",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/user-enrolments/$ENROLMENT_ID:set-organisation-party-profile \\\n    -H \'Content-Type: application/json\' \\\n    -d \'{\n          "country": "US",\n          "dateOfIncorporation": "2022-03-10",\n          "description": "Plumery Inc. is a software company",\n          "legalName": "Plumery Inc.",\n          "legalType": "Limited Liability Company",\n          "registrationNumber": "123456789",\n          "tradingName": "Plumery",\n          "vatNumber": "123456789",\n          "website": "https://plumery.com"\n        }\'',
      },
    },
  },
  {
    name: 'setUsername',
    endpoint: '/api/v1/user-enrolments/{enrolmentId}:set-username',
    httpMethod: 'post',
    summary: 'Set Username',
    description: 'Sets the username for the user.',
    stainlessPath: '(resource) user-enrolments > (method) setUsername',
    qualified: 'client.userEnrolments.setUsername',
    params: ['enrolmentId: string;', 'username: string;', 'X-Request-ID?: string;'],
    markdown:
      "## setUsername\n\n`client.userEnrolments.setUsername(enrolmentId: string, username: string, X-Request-ID?: string): void`\n\n**post** `/api/v1/user-enrolments/{enrolmentId}:set-username`\n\nSets the username for the user.\n\n### Parameters\n\n- `enrolmentId: string`\n\n- `username: string`\n\n- `X-Request-ID?: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nawait client.userEnrolments.setUsername('36a22460-ebc8-4ffe-a213-1683c5a420c5', { username: 'P' })\n```",
    perLanguage: {
      typescript: {
        method: 'client.userEnrolments.setUsername',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery();\n\nawait client.userEnrolments.setUsername('36a22460-ebc8-4ffe-a213-1683c5a420c5', { username: 'P' });",
      },
      python: {
        method: 'user_enrolments.set_username',
        example:
          'from plumery import Plumery\n\nclient = Plumery()\nclient.user_enrolments.set_username(\n    enrolment_id="36a22460-ebc8-4ffe-a213-1683c5a420c5",\n    username="P",\n)',
      },
      java: {
        method: 'userEnrolments().setUsername',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.userenrolments.UserEnrolmentSetUsernameParams;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        UserEnrolmentSetUsernameParams params = UserEnrolmentSetUsernameParams.builder()\n            .enrolmentId("36a22460-ebc8-4ffe-a213-1683c5a420c5")\n            .username("P")\n            .build();\n        client.userEnrolments().setUsername(params);\n    }\n}',
      },
      kotlin: {
        method: 'userEnrolments().setUsername',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.userenrolments.UserEnrolmentSetUsernameParams\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: UserEnrolmentSetUsernameParams = UserEnrolmentSetUsernameParams.builder()\n        .enrolmentId("36a22460-ebc8-4ffe-a213-1683c5a420c5")\n        .username("P")\n        .build()\n    client.userEnrolments().setUsername(params)\n}',
      },
      go: {
        method: 'client.UserEnrolments.SetUsername',
        example:
          'package main\n\nimport (\n\t"context"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\terr := client.UserEnrolments.SetUsername(\n\t\tcontext.TODO(),\n\t\t"36a22460-ebc8-4ffe-a213-1683c5a420c5",\n\t\tplumery.UserEnrolmentSetUsernameParams{\n\t\t\tUsername: plumery.F("P"),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
      },
      cli: {
        method: 'user-enrolments setUsername',
        example:
          "plumery user-enrolments set-username \\\n  --session 'My Session' \\\n  --enrolment-id 36a22460-ebc8-4ffe-a213-1683c5a420c5 \\\n  --username P",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/user-enrolments/$ENROLMENT_ID:set-username \\\n    -H \'Content-Type: application/json\' \\\n    -d \'{\n          "username": "P"\n        }\'',
      },
    },
  },
  {
    name: 'setCredential',
    endpoint: '/api/v1/user-enrolments/{enrolmentId}:set-credential',
    httpMethod: 'post',
    summary: 'Set Credentials',
    description: 'Sets credentials for the user.',
    stainlessPath: '(resource) user-enrolments > (method) setCredential',
    qualified: 'client.userEnrolments.setCredential',
    params: ['enrolmentId: string;', 'credential: string;', "type: 'PASSWORD';", 'X-Request-ID?: string;'],
    markdown:
      "## setCredential\n\n`client.userEnrolments.setCredential(enrolmentId: string, credential: string, type: 'PASSWORD', X-Request-ID?: string): void`\n\n**post** `/api/v1/user-enrolments/{enrolmentId}:set-credential`\n\nSets credentials for the user.\n\n### Parameters\n\n- `enrolmentId: string`\n\n- `credential: string`\n  Credential value submitted by the user for PASSWORD credential type.\n\n- `type: 'PASSWORD'`\n  Type of credential to be set for user, currently only PASSWORD is supported.\n\n- `X-Request-ID?: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nawait client.userEnrolments.setCredential('36a22460-ebc8-4ffe-a213-1683c5a420c5', { credential: '1£0UMJ!i5k_8', type: 'PASSWORD' })\n```",
    perLanguage: {
      typescript: {
        method: 'client.userEnrolments.setCredential',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery();\n\nawait client.userEnrolments.setCredential('36a22460-ebc8-4ffe-a213-1683c5a420c5', {\n  credential: '1£0UMJ!i5k_8',\n  type: 'PASSWORD',\n});",
      },
      python: {
        method: 'user_enrolments.set_credential',
        example:
          'from plumery import Plumery\n\nclient = Plumery()\nclient.user_enrolments.set_credential(\n    enrolment_id="36a22460-ebc8-4ffe-a213-1683c5a420c5",\n    credential="1£0UMJ!i5k_8",\n    type="PASSWORD",\n)',
      },
      java: {
        method: 'userEnrolments().setCredential',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.userenrolments.UserEnrolmentSetCredentialParams;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        UserEnrolmentSetCredentialParams params = UserEnrolmentSetCredentialParams.builder()\n            .enrolmentId("36a22460-ebc8-4ffe-a213-1683c5a420c5")\n            .credential("1£0UMJ!i5k_8")\n            .type(UserEnrolmentSetCredentialParams.Type.PASSWORD)\n            .build();\n        client.userEnrolments().setCredential(params);\n    }\n}',
      },
      kotlin: {
        method: 'userEnrolments().setCredential',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.userenrolments.UserEnrolmentSetCredentialParams\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: UserEnrolmentSetCredentialParams = UserEnrolmentSetCredentialParams.builder()\n        .enrolmentId("36a22460-ebc8-4ffe-a213-1683c5a420c5")\n        .credential("1£0UMJ!i5k_8")\n        .type(UserEnrolmentSetCredentialParams.Type.PASSWORD)\n        .build()\n    client.userEnrolments().setCredential(params)\n}',
      },
      go: {
        method: 'client.UserEnrolments.SetCredential',
        example:
          'package main\n\nimport (\n\t"context"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\terr := client.UserEnrolments.SetCredential(\n\t\tcontext.TODO(),\n\t\t"36a22460-ebc8-4ffe-a213-1683c5a420c5",\n\t\tplumery.UserEnrolmentSetCredentialParams{\n\t\t\tCredential: plumery.F("1£0UMJ!i5k_8"),\n\t\t\tType:       plumery.F(plumery.UserEnrolmentSetCredentialParamsTypePassword),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
      },
      cli: {
        method: 'user-enrolments setCredential',
        example:
          "plumery user-enrolments set-credential \\\n  --session 'My Session' \\\n  --enrolment-id 36a22460-ebc8-4ffe-a213-1683c5a420c5 \\\n  --credential '1£0UMJ!i5k_8' \\\n  --type PASSWORD",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/user-enrolments/$ENROLMENT_ID:set-credential \\\n    -H \'Content-Type: application/json\' \\\n    -d \'{\n          "credential": "1£0UMJ!i5k_8",\n          "type": "PASSWORD"\n        }\'',
      },
    },
  },
  {
    name: 'setIndividualPartyProfile',
    endpoint: '/api/v1/user-enrolments/{enrolmentId}:set-individual-party-profile',
    httpMethod: 'post',
    summary: 'Set Individual Party Profile',
    description: 'Set individual party profile',
    stainlessPath: '(resource) user-enrolments > (method) setIndividualPartyProfile',
    qualified: 'client.userEnrolments.setIndividualPartyProfile',
    params: [
      'enrolmentId: string;',
      'dateOfBirth?: string;',
      'postalAddress?: { buildingName?: string; buildingNumber?: string; country?: string; countrySubDivision?: string; districtName?: string; floor?: string; postBox?: string; postCode?: string; streetName?: string; suite?: string; townLocationName?: string; townName?: string; };',
      'registrationAddress?: { buildingName?: string; buildingNumber?: string; country?: string; countrySubDivision?: string; districtName?: string; floor?: string; postBox?: string; postCode?: string; streetName?: string; suite?: string; townLocationName?: string; townName?: string; };',
      "taxIdentifications?: { country?: string; primary?: boolean; reasonDescription?: string; reasonNoTin?: 'NOT_ASSIGNED_YET' | 'NOT_ASSIGNED_BY_COUNTRY' | 'OTHER'; tin?: string; }[];",
      'X-Request-ID?: string;',
    ],
    markdown:
      "## setIndividualPartyProfile\n\n`client.userEnrolments.setIndividualPartyProfile(enrolmentId: string, dateOfBirth?: string, postalAddress?: { buildingName?: string; buildingNumber?: string; country?: string; countrySubDivision?: string; districtName?: string; floor?: string; postBox?: string; postCode?: string; streetName?: string; suite?: string; townLocationName?: string; townName?: string; }, registrationAddress?: { buildingName?: string; buildingNumber?: string; country?: string; countrySubDivision?: string; districtName?: string; floor?: string; postBox?: string; postCode?: string; streetName?: string; suite?: string; townLocationName?: string; townName?: string; }, taxIdentifications?: { country?: string; primary?: boolean; reasonDescription?: string; reasonNoTin?: 'NOT_ASSIGNED_YET' | 'NOT_ASSIGNED_BY_COUNTRY' | 'OTHER'; tin?: string; }[], X-Request-ID?: string): void`\n\n**post** `/api/v1/user-enrolments/{enrolmentId}:set-individual-party-profile`\n\nSet individual party profile\n\n### Parameters\n\n- `enrolmentId: string`\n\n- `dateOfBirth?: string`\n  Date of birth of the individual\n\n- `postalAddress?: { buildingName?: string; buildingNumber?: string; country?: string; countrySubDivision?: string; districtName?: string; floor?: string; postBox?: string; postCode?: string; streetName?: string; suite?: string; townLocationName?: string; townName?: string; }`\n  Postal address where the individual receives mail\n  - `buildingName?: string`\n    Name of the building or house\n\n  - `buildingNumber?: string`\n    Number that identifies the position of a building on a street\n\n  - `country?: string`\n    Nation with its own government. ISO 3166, Alpha-2 code\n\n  - `countrySubDivision?: string`\n    Identifies a subdivision of a country such as state, region, county\n\n  - `districtName?: string`\n    Identifies a subdivision within a country sub-division\n\n  - `floor?: string`\n    Floor or storey within a building\n\n  - `postBox?: string`\n    Numbered box in a post office, assigned to a person or organisation, where letters are kept until called for\n\n  - `postCode?: string`\n    Identifier consisting of a group of letters and/or numbers that is added to a postal address to assist the sorting of mail\n\n  - `streetName?: string`\n    Name of a street or thoroughfare\n\n  - `suite?: string`\n    Building room number\n\n  - `townLocationName?: string`\n    Specific location name within the town\n\n  - `townName?: string`\n    Name of a built-up area, with defined boundaries, and a local government\n\n\n- `registrationAddress?: { buildingName?: string; buildingNumber?: string; country?: string; countrySubDivision?: string; districtName?: string; floor?: string; postBox?: string; postCode?: string; streetName?: string; suite?: string; townLocationName?: string; townName?: string; }`\n  Registered address of the individual\n  - `buildingName?: string`\n    Name of the building or house\n\n  - `buildingNumber?: string`\n    Number that identifies the position of a building on a street\n\n  - `country?: string`\n    Nation with its own government. ISO 3166, Alpha-2 code\n\n  - `countrySubDivision?: string`\n    Identifies a subdivision of a country such as state, region, county\n\n  - `districtName?: string`\n    Identifies a subdivision within a country sub-division\n\n  - `floor?: string`\n    Floor or storey within a building\n\n  - `postBox?: string`\n    Numbered box in a post office, assigned to a person or organisation, where letters are kept until called for\n\n  - `postCode?: string`\n    Identifier consisting of a group of letters and/or numbers that is added to a postal address to assist the sorting of mail\n\n  - `streetName?: string`\n    Name of a street or thoroughfare\n\n  - `suite?: string`\n    Building room number\n\n  - `townLocationName?: string`\n    Specific location name within the town\n\n  - `townName?: string`\n    Name of a built-up area, with defined boundaries, and a local government\n\n\n- `taxIdentifications?: { country?: string; primary?: boolean; reasonDescription?: string; reasonNoTin?: 'NOT_ASSIGNED_YET' | 'NOT_ASSIGNED_BY_COUNTRY' | 'OTHER'; tin?: string; }[]`\n\n- `X-Request-ID?: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nawait client.userEnrolments.setIndividualPartyProfile('36a22460-ebc8-4ffe-a213-1683c5a420c5')\n```",
    perLanguage: {
      typescript: {
        method: 'client.userEnrolments.setIndividualPartyProfile',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery();\n\nawait client.userEnrolments.setIndividualPartyProfile('36a22460-ebc8-4ffe-a213-1683c5a420c5');",
      },
      python: {
        method: 'user_enrolments.set_individual_party_profile',
        example:
          'from plumery import Plumery\n\nclient = Plumery()\nclient.user_enrolments.set_individual_party_profile(\n    enrolment_id="36a22460-ebc8-4ffe-a213-1683c5a420c5",\n)',
      },
      java: {
        method: 'userEnrolments().setIndividualPartyProfile',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.userenrolments.UserEnrolmentSetIndividualPartyProfileParams;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        client.userEnrolments().setIndividualPartyProfile("36a22460-ebc8-4ffe-a213-1683c5a420c5");\n    }\n}',
      },
      kotlin: {
        method: 'userEnrolments().setIndividualPartyProfile',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.userenrolments.UserEnrolmentSetIndividualPartyProfileParams\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    client.userEnrolments().setIndividualPartyProfile("36a22460-ebc8-4ffe-a213-1683c5a420c5")\n}',
      },
      go: {
        method: 'client.UserEnrolments.SetIndividualPartyProfile',
        example:
          'package main\n\nimport (\n\t"context"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\terr := client.UserEnrolments.SetIndividualPartyProfile(\n\t\tcontext.TODO(),\n\t\t"36a22460-ebc8-4ffe-a213-1683c5a420c5",\n\t\tplumery.UserEnrolmentSetIndividualPartyProfileParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
      },
      cli: {
        method: 'user-enrolments setIndividualPartyProfile',
        example:
          "plumery user-enrolments set-individual-party-profile \\\n  --session 'My Session' \\\n  --enrolment-id 36a22460-ebc8-4ffe-a213-1683c5a420c5",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/user-enrolments/$ENROLMENT_ID:set-individual-party-profile \\\n    -H \'Content-Type: application/json\' \\\n    -d \'{\n          "dateOfBirth": "2022-03-10"\n        }\'',
      },
    },
  },
  {
    name: 'generateIdentityVerificationToken',
    endpoint: '/api/v1/user-enrolments/{enrolmentId}:generate-identity-verification-token',
    httpMethod: 'post',
    summary: 'Initiate User Identity Verification',
    description: 'Initiates user identity verification.',
    stainlessPath: '(resource) user-enrolments > (method) generateIdentityVerificationToken',
    qualified: 'client.userEnrolments.generateIdentityVerificationToken',
    params: ['enrolmentId: string;', 'X-Request-ID?: string;'],
    response: '{ token?: string; }',
    markdown:
      "## generateIdentityVerificationToken\n\n`client.userEnrolments.generateIdentityVerificationToken(enrolmentId: string, X-Request-ID?: string): { token?: string; }`\n\n**post** `/api/v1/user-enrolments/{enrolmentId}:generate-identity-verification-token`\n\nInitiates user identity verification.\n\n### Parameters\n\n- `enrolmentId: string`\n\n- `X-Request-ID?: string`\n\n### Returns\n\n- `{ token?: string; }`\n\n  - `token?: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.userEnrolments.generateIdentityVerificationToken('36a22460-ebc8-4ffe-a213-1683c5a420c5');\n\nconsole.log(response);\n```",
    perLanguage: {
      typescript: {
        method: 'client.userEnrolments.generateIdentityVerificationToken',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.userEnrolments.generateIdentityVerificationToken(\n  '36a22460-ebc8-4ffe-a213-1683c5a420c5',\n);\n\nconsole.log(response.token);",
      },
      python: {
        method: 'user_enrolments.generate_identity_verification_token',
        example:
          'from plumery import Plumery\n\nclient = Plumery()\nresponse = client.user_enrolments.generate_identity_verification_token(\n    enrolment_id="36a22460-ebc8-4ffe-a213-1683c5a420c5",\n)\nprint(response.token)',
      },
      java: {
        method: 'userEnrolments().generateIdentityVerificationToken',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.userenrolments.UserEnrolmentGenerateIdentityVerificationTokenParams;\nimport com.plumery.api.models.userenrolments.UserEnrolmentGenerateIdentityVerificationTokenResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        UserEnrolmentGenerateIdentityVerificationTokenResponse response = client.userEnrolments().generateIdentityVerificationToken("36a22460-ebc8-4ffe-a213-1683c5a420c5");\n    }\n}',
      },
      kotlin: {
        method: 'userEnrolments().generateIdentityVerificationToken',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.userenrolments.UserEnrolmentGenerateIdentityVerificationTokenParams\nimport com.plumery.api.models.userenrolments.UserEnrolmentGenerateIdentityVerificationTokenResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val response: UserEnrolmentGenerateIdentityVerificationTokenResponse = client.userEnrolments().generateIdentityVerificationToken("36a22460-ebc8-4ffe-a213-1683c5a420c5")\n}',
      },
      go: {
        method: 'client.UserEnrolments.GenerateIdentityVerificationToken',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tresponse, err := client.UserEnrolments.GenerateIdentityVerificationToken(\n\t\tcontext.TODO(),\n\t\t"36a22460-ebc8-4ffe-a213-1683c5a420c5",\n\t\tplumery.UserEnrolmentGenerateIdentityVerificationTokenParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.Token)\n}\n',
      },
      cli: {
        method: 'user-enrolments generateIdentityVerificationToken',
        example:
          "plumery user-enrolments generate-identity-verification-token \\\n  --session 'My Session' \\\n  --enrolment-id 36a22460-ebc8-4ffe-a213-1683c5a420c5",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/user-enrolments/$ENROLMENT_ID:generate-identity-verification-token \\\n    -X POST',
      },
    },
  },
  {
    name: 'setCardDetails',
    endpoint: '/api/v1/user-enrolments/{enrolmentId}:set-card-details',
    httpMethod: 'post',
    summary: 'Set card details',
    description: 'Initiates user identity verification.',
    stainlessPath: '(resource) user-enrolments > (method) setCardDetails',
    qualified: 'client.userEnrolments.setCardDetails',
    params: ['enrolmentId: string;', 'alias?: string;', 'type?: string;', 'X-Request-ID?: string;'],
    markdown:
      "## setCardDetails\n\n`client.userEnrolments.setCardDetails(enrolmentId: string, alias?: string, type?: string, X-Request-ID?: string): void`\n\n**post** `/api/v1/user-enrolments/{enrolmentId}:set-card-details`\n\nInitiates user identity verification.\n\n### Parameters\n\n- `enrolmentId: string`\n\n- `alias?: string`\n  The card alias.\n\n- `type?: string`\n  The Card Type.\n\nThe current set of possible values includes: \n- VIRTUAL\n\n Please note that new possible values can be added in the future.\n\n\n- `X-Request-ID?: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nawait client.userEnrolments.setCardDetails('36a22460-ebc8-4ffe-a213-1683c5a420c5')\n```",
    perLanguage: {
      typescript: {
        method: 'client.userEnrolments.setCardDetails',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery();\n\nawait client.userEnrolments.setCardDetails('36a22460-ebc8-4ffe-a213-1683c5a420c5');",
      },
      python: {
        method: 'user_enrolments.set_card_details',
        example:
          'from plumery import Plumery\n\nclient = Plumery()\nclient.user_enrolments.set_card_details(\n    enrolment_id="36a22460-ebc8-4ffe-a213-1683c5a420c5",\n)',
      },
      java: {
        method: 'userEnrolments().setCardDetails',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.userenrolments.UserEnrolmentSetCardDetailsParams;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        client.userEnrolments().setCardDetails("36a22460-ebc8-4ffe-a213-1683c5a420c5");\n    }\n}',
      },
      kotlin: {
        method: 'userEnrolments().setCardDetails',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.userenrolments.UserEnrolmentSetCardDetailsParams\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    client.userEnrolments().setCardDetails("36a22460-ebc8-4ffe-a213-1683c5a420c5")\n}',
      },
      go: {
        method: 'client.UserEnrolments.SetCardDetails',
        example:
          'package main\n\nimport (\n\t"context"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\terr := client.UserEnrolments.SetCardDetails(\n\t\tcontext.TODO(),\n\t\t"36a22460-ebc8-4ffe-a213-1683c5a420c5",\n\t\tplumery.UserEnrolmentSetCardDetailsParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
      },
      cli: {
        method: 'user-enrolments setCardDetails',
        example:
          "plumery user-enrolments set-card-details \\\n  --session 'My Session' \\\n  --enrolment-id 36a22460-ebc8-4ffe-a213-1683c5a420c5",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/user-enrolments/$ENROLMENT_ID:set-card-details \\\n    -H \'Content-Type: application/json\' \\\n    -d \'{\n          "alias": "Online Shopping",\n          "type": "VIRTUAL"\n        }\'',
      },
    },
  },
  {
    name: 'registerDevice',
    endpoint: '/api/v1/user-enrolments/{enrolmentId}:register-device',
    httpMethod: 'post',
    summary: 'Register Device',
    description:
      "Initiates the registration process for the user's device by accepting the device's public key and additional \ninformation.\n\nOnce the device signature is verified, using the 'Verify Device' endpoint, the generated device ID \ncan be used in the login process to establish a secure, authenticated connection.\n\n**Note:** if the device is not verified with signature, the registration process will not be completed, and the \ndevice will not be registered.",
    stainlessPath: '(resource) user-enrolments > (method) registerDevice',
    qualified: 'client.userEnrolments.registerDevice',
    params: ['enrolmentId: string;', 'publicKey: string;', 'info?: object;', 'X-Request-ID?: string;'],
    response:
      "{ deviceId: string; verification?: { endpoint?: '/api/v1/user-enrolments/{enrolmentId}:verify-device'; method?: 'SIGNATURE'; }; }",
    markdown:
      "## registerDevice\n\n`client.userEnrolments.registerDevice(enrolmentId: string, publicKey: string, info?: object, X-Request-ID?: string): { deviceId: string; verification?: object; }`\n\n**post** `/api/v1/user-enrolments/{enrolmentId}:register-device`\n\nInitiates the registration process for the user's device by accepting the device's public key and additional \ninformation.\n\nOnce the device signature is verified, using the 'Verify Device' endpoint, the generated device ID \ncan be used in the login process to establish a secure, authenticated connection.\n\n**Note:** if the device is not verified with signature, the registration process will not be completed, and the \ndevice will not be registered.\n\n### Parameters\n\n- `enrolmentId: string`\n\n- `publicKey: string`\n  The public key provided by the mobile device for the device registration process. It is used to bind the \ndevice to user profile. The corresponding private key is securely stored on the device.\n\n\n- `info?: object`\n  An optional key-value map containing additional information about the device. Each key and value must be a string. \nThe total character length of all keys and values combined must not exceed 4096 characters. This allows for additional\ncontextual data to be sent with the registration request, enhancing the information available for the registration process.\n\n\n- `X-Request-ID?: string`\n\n### Returns\n\n- `{ deviceId: string; verification?: { endpoint?: '/api/v1/user-enrolments/{enrolmentId}:verify-device'; method?: 'SIGNATURE'; }; }`\n\n  - `deviceId: string`\n  - `verification?: { endpoint?: '/api/v1/user-enrolments/{enrolmentId}:verify-device'; method?: 'SIGNATURE'; }`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.userEnrolments.registerDevice('36a22460-ebc8-4ffe-a213-1683c5a420c5', { publicKey: 'publicKey' });\n\nconsole.log(response);\n```",
    perLanguage: {
      typescript: {
        method: 'client.userEnrolments.registerDevice',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.userEnrolments.registerDevice(\n  '36a22460-ebc8-4ffe-a213-1683c5a420c5',\n  { publicKey: 'publicKey' },\n);\n\nconsole.log(response.deviceId);",
      },
      python: {
        method: 'user_enrolments.register_device',
        example:
          'from plumery import Plumery\n\nclient = Plumery()\nresponse = client.user_enrolments.register_device(\n    enrolment_id="36a22460-ebc8-4ffe-a213-1683c5a420c5",\n    public_key="publicKey",\n)\nprint(response.device_id)',
      },
      java: {
        method: 'userEnrolments().registerDevice',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.userenrolments.UserEnrolmentRegisterDeviceParams;\nimport com.plumery.api.models.userenrolments.UserEnrolmentRegisterDeviceResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        UserEnrolmentRegisterDeviceParams params = UserEnrolmentRegisterDeviceParams.builder()\n            .enrolmentId("36a22460-ebc8-4ffe-a213-1683c5a420c5")\n            .publicKey("publicKey")\n            .build();\n        UserEnrolmentRegisterDeviceResponse response = client.userEnrolments().registerDevice(params);\n    }\n}',
      },
      kotlin: {
        method: 'userEnrolments().registerDevice',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.userenrolments.UserEnrolmentRegisterDeviceParams\nimport com.plumery.api.models.userenrolments.UserEnrolmentRegisterDeviceResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: UserEnrolmentRegisterDeviceParams = UserEnrolmentRegisterDeviceParams.builder()\n        .enrolmentId("36a22460-ebc8-4ffe-a213-1683c5a420c5")\n        .publicKey("publicKey")\n        .build()\n    val response: UserEnrolmentRegisterDeviceResponse = client.userEnrolments().registerDevice(params)\n}',
      },
      go: {
        method: 'client.UserEnrolments.RegisterDevice',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tresponse, err := client.UserEnrolments.RegisterDevice(\n\t\tcontext.TODO(),\n\t\t"36a22460-ebc8-4ffe-a213-1683c5a420c5",\n\t\tplumery.UserEnrolmentRegisterDeviceParams{\n\t\t\tPublicKey: plumery.F("publicKey"),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.DeviceID)\n}\n',
      },
      cli: {
        method: 'user-enrolments registerDevice',
        example:
          "plumery user-enrolments register-device \\\n  --session 'My Session' \\\n  --enrolment-id 36a22460-ebc8-4ffe-a213-1683c5a420c5 \\\n  --public-key publicKey",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/user-enrolments/$ENROLMENT_ID:register-device \\\n    -H \'Content-Type: application/json\' \\\n    -d \'{\n          "publicKey": "publicKey"\n        }\'',
      },
    },
  },
  {
    name: 'verifyDevice',
    endpoint: '/api/v1/user-enrolments/{enrolmentId}:verify-device',
    httpMethod: 'post',
    summary: 'Verify Device',
    description:
      'Verifies the registered device by requiring a signature of the device ID, created using the private key \ncorresponding to the public key provided during the registration process.\n\n**Note:** if the device is not verified with signature, the registration process will not be completed, and the \ndevice will not be registered.\n',
    stainlessPath: '(resource) user-enrolments > (method) verifyDevice',
    qualified: 'client.userEnrolments.verifyDevice',
    params: ['enrolmentId: string;', 'signature?: string;', 'X-Request-ID?: string;'],
    markdown:
      "## verifyDevice\n\n`client.userEnrolments.verifyDevice(enrolmentId: string, signature?: string, X-Request-ID?: string): void`\n\n**post** `/api/v1/user-enrolments/{enrolmentId}:verify-device`\n\nVerifies the registered device by requiring a signature of the device ID, created using the private key \ncorresponding to the public key provided during the registration process.\n\n**Note:** if the device is not verified with signature, the registration process will not be completed, and the \ndevice will not be registered.\n\n\n### Parameters\n\n- `enrolmentId: string`\n\n- `signature?: string`\n  The cryptographic signature of the `deviceId`, created using the device's private key. This serves to prove \nthat the device possesses the corresponding private key for the public key provided during registration.\nThe signature is verified by the server to complete the device registration process.\n\n\n- `X-Request-ID?: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nawait client.userEnrolments.verifyDevice('36a22460-ebc8-4ffe-a213-1683c5a420c5')\n```",
    perLanguage: {
      typescript: {
        method: 'client.userEnrolments.verifyDevice',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery();\n\nawait client.userEnrolments.verifyDevice('36a22460-ebc8-4ffe-a213-1683c5a420c5');",
      },
      python: {
        method: 'user_enrolments.verify_device',
        example:
          'from plumery import Plumery\n\nclient = Plumery()\nclient.user_enrolments.verify_device(\n    enrolment_id="36a22460-ebc8-4ffe-a213-1683c5a420c5",\n)',
      },
      java: {
        method: 'userEnrolments().verifyDevice',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.userenrolments.UserEnrolmentVerifyDeviceParams;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        client.userEnrolments().verifyDevice("36a22460-ebc8-4ffe-a213-1683c5a420c5");\n    }\n}',
      },
      kotlin: {
        method: 'userEnrolments().verifyDevice',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.userenrolments.UserEnrolmentVerifyDeviceParams\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    client.userEnrolments().verifyDevice("36a22460-ebc8-4ffe-a213-1683c5a420c5")\n}',
      },
      go: {
        method: 'client.UserEnrolments.VerifyDevice',
        example:
          'package main\n\nimport (\n\t"context"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\terr := client.UserEnrolments.VerifyDevice(\n\t\tcontext.TODO(),\n\t\t"36a22460-ebc8-4ffe-a213-1683c5a420c5",\n\t\tplumery.UserEnrolmentVerifyDeviceParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
      },
      cli: {
        method: 'user-enrolments verifyDevice',
        example:
          "plumery user-enrolments verify-device \\\n  --session 'My Session' \\\n  --enrolment-id 36a22460-ebc8-4ffe-a213-1683c5a420c5",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/user-enrolments/$ENROLMENT_ID:verify-device \\\n    -X POST',
      },
    },
  },
  {
    name: 'initiateIdentityAuthentication',
    endpoint: '/api/v1/user-enrolments/{enrolmentId}:initiate-identity-authentication',
    httpMethod: 'post',
    summary: 'Initiate Identity Authentication',
    description:
      'Initiates identity authentication using an external provider (e.g., Mobile-ID, Smart-ID).\nReturns a short **verification code** that the user must compare/confirm in their app.\n',
    stainlessPath: '(resource) user-enrolments > (method) initiateIdentityAuthentication',
    qualified: 'client.userEnrolments.initiateIdentityAuthentication',
    params: [
      'enrolmentId: string;',
      "body: { method: 'MOBILE_ID'; personalId: string; phoneNumber: string; } | { country: string; method: 'SMART_ID'; personalId: string; } | { attributes: object; method: string; };",
      'accept-language?: string;',
      'X-Request-ID?: string;',
    ],
    response: '{ code: string; }',
    perLanguage: {
      typescript: {
        method: 'client.userEnrolments.initiateIdentityAuthentication',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.userEnrolments.initiateIdentityAuthentication(\n  '36a22460-ebc8-4ffe-a213-1683c5a420c5',\n  {\n    method: 'MOBILE_ID',\n    personalId: '49001010001',\n    phoneNumber: '+37069584868',\n  },\n);\n\nconsole.log(response.code);",
      },
      python: {
        method: 'user_enrolments.initiate_identity_authentication',
        example:
          'from plumery import Plumery\n\nclient = Plumery()\nresponse = client.user_enrolments.initiate_identity_authentication(\n    enrolment_id="36a22460-ebc8-4ffe-a213-1683c5a420c5",\n    method="MOBILE_ID",\n    personal_id="49001010001",\n    phone_number="+37069584868",\n)\nprint(response.code)',
      },
      java: {
        method: 'userEnrolments().initiateIdentityAuthentication',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.userenrolments.UserEnrolmentInitiateIdentityAuthenticationParams;\nimport com.plumery.api.models.userenrolments.UserEnrolmentInitiateIdentityAuthenticationResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        UserEnrolmentInitiateIdentityAuthenticationParams params = UserEnrolmentInitiateIdentityAuthenticationParams.builder()\n            .enrolmentId("36a22460-ebc8-4ffe-a213-1683c5a420c5")\n            .body(UserEnrolmentInitiateIdentityAuthenticationParams.Body.MobileId.builder()\n                .personalId("49001010001")\n                .phoneNumber("+37069584868")\n                .build())\n            .build();\n        UserEnrolmentInitiateIdentityAuthenticationResponse response = client.userEnrolments().initiateIdentityAuthentication(params);\n    }\n}',
      },
      kotlin: {
        method: 'userEnrolments().initiateIdentityAuthentication',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.userenrolments.UserEnrolmentInitiateIdentityAuthenticationParams\nimport com.plumery.api.models.userenrolments.UserEnrolmentInitiateIdentityAuthenticationResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: UserEnrolmentInitiateIdentityAuthenticationParams = UserEnrolmentInitiateIdentityAuthenticationParams.builder()\n        .enrolmentId("36a22460-ebc8-4ffe-a213-1683c5a420c5")\n        .body(UserEnrolmentInitiateIdentityAuthenticationParams.Body.MobileId.builder()\n            .personalId("49001010001")\n            .phoneNumber("+37069584868")\n            .build())\n        .build()\n    val response: UserEnrolmentInitiateIdentityAuthenticationResponse = client.userEnrolments().initiateIdentityAuthentication(params)\n}',
      },
      go: {
        method: 'client.UserEnrolments.InitiateIdentityAuthentication',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tresponse, err := client.UserEnrolments.InitiateIdentityAuthentication(\n\t\tcontext.TODO(),\n\t\t"36a22460-ebc8-4ffe-a213-1683c5a420c5",\n\t\tplumery.UserEnrolmentInitiateIdentityAuthenticationParams{\n\t\t\tBody: plumery.UserEnrolmentInitiateIdentityAuthenticationParamsBodyUserEnrolmentSkIDMobileIDAuthenticationRequest{\n\t\t\t\tMethod:      plumery.F(plumery.UserEnrolmentInitiateIdentityAuthenticationParamsBodyUserEnrolmentSkIDMobileIDAuthenticationRequestMethodMobileID),\n\t\t\t\tPersonalID:  plumery.F("49001010001"),\n\t\t\t\tPhoneNumber: plumery.F("+37069584868"),\n\t\t\t},\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.Code)\n}\n',
      },
      cli: {
        method: 'user-enrolments initiateIdentityAuthentication',
        example:
          "plumery user-enrolments initiate-identity-authentication \\\n  --session 'My Session' \\\n  --enrolment-id 36a22460-ebc8-4ffe-a213-1683c5a420c5 \\\n  --method MOBILE_ID \\\n  --personal-id 49001010001 \\\n  --phone-number +37069584868 \\\n  --country LT \\\n  --attributes '{vendorFlow: bar, sessionHints: bar, phoneNumber: bar, emailAddress: bar}'",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/user-enrolments/$ENROLMENT_ID:initiate-identity-authentication \\\n    -H \'Content-Type: application/json\' \\\n    -d \'{\n          "method": "MOBILE_ID",\n          "personalId": "49001010001",\n          "phoneNumber": "+37069584868"\n        }\'',
      },
    },
  },
  {
    name: 'verifyIdentityAuthentication',
    endpoint: '/api/v1/user-enrolments/{enrolmentId}:verify-identity-authentication',
    httpMethod: 'post',
    summary: 'Verify Identity Authentication',
    description:
      'Completes identity authentication after the user confirms the challenge in their app.\nNo request body is required; the current pending authentication is verified.\n',
    stainlessPath: '(resource) user-enrolments > (method) verifyIdentityAuthentication',
    qualified: 'client.userEnrolments.verifyIdentityAuthentication',
    params: ['enrolmentId: string;', 'X-Request-ID?: string;'],
    markdown:
      "## verifyIdentityAuthentication\n\n`client.userEnrolments.verifyIdentityAuthentication(enrolmentId: string, X-Request-ID?: string): void`\n\n**post** `/api/v1/user-enrolments/{enrolmentId}:verify-identity-authentication`\n\nCompletes identity authentication after the user confirms the challenge in their app.\nNo request body is required; the current pending authentication is verified.\n\n\n### Parameters\n\n- `enrolmentId: string`\n\n- `X-Request-ID?: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nawait client.userEnrolments.verifyIdentityAuthentication('36a22460-ebc8-4ffe-a213-1683c5a420c5')\n```",
    perLanguage: {
      typescript: {
        method: 'client.userEnrolments.verifyIdentityAuthentication',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery();\n\nawait client.userEnrolments.verifyIdentityAuthentication('36a22460-ebc8-4ffe-a213-1683c5a420c5');",
      },
      python: {
        method: 'user_enrolments.verify_identity_authentication',
        example:
          'from plumery import Plumery\n\nclient = Plumery()\nclient.user_enrolments.verify_identity_authentication(\n    enrolment_id="36a22460-ebc8-4ffe-a213-1683c5a420c5",\n)',
      },
      java: {
        method: 'userEnrolments().verifyIdentityAuthentication',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.userenrolments.UserEnrolmentVerifyIdentityAuthenticationParams;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        client.userEnrolments().verifyIdentityAuthentication("36a22460-ebc8-4ffe-a213-1683c5a420c5");\n    }\n}',
      },
      kotlin: {
        method: 'userEnrolments().verifyIdentityAuthentication',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.userenrolments.UserEnrolmentVerifyIdentityAuthenticationParams\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    client.userEnrolments().verifyIdentityAuthentication("36a22460-ebc8-4ffe-a213-1683c5a420c5")\n}',
      },
      go: {
        method: 'client.UserEnrolments.VerifyIdentityAuthentication',
        example:
          'package main\n\nimport (\n\t"context"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\terr := client.UserEnrolments.VerifyIdentityAuthentication(\n\t\tcontext.TODO(),\n\t\t"36a22460-ebc8-4ffe-a213-1683c5a420c5",\n\t\tplumery.UserEnrolmentVerifyIdentityAuthenticationParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
      },
      cli: {
        method: 'user-enrolments verifyIdentityAuthentication',
        example:
          "plumery user-enrolments verify-identity-authentication \\\n  --session 'My Session' \\\n  --enrolment-id 36a22460-ebc8-4ffe-a213-1683c5a420c5",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/user-enrolments/$ENROLMENT_ID:verify-identity-authentication \\\n    -X POST',
      },
    },
  },
  {
    name: 'accept',
    endpoint: '/api/v1/user-enrolments/{enrolmentId}/legal-agreements:accept',
    httpMethod: 'post',
    summary: 'Accept Legal Agreements',
    description: 'Record the user acceptance of the presented legal agreements.',
    stainlessPath: '(resource) user-enrolments.legal-agreements > (method) accept',
    qualified: 'client.userEnrolments.legalAgreements.accept',
    params: [
      'enrolmentId: string;',
      'legalAgreements: { type: string; version: string; }[];',
      'X-Request-ID?: string;',
    ],
    markdown:
      "## accept\n\n`client.userEnrolments.legalAgreements.accept(enrolmentId: string, legalAgreements: { type: string; version: string; }[], X-Request-ID?: string): void`\n\n**post** `/api/v1/user-enrolments/{enrolmentId}/legal-agreements:accept`\n\nRecord the user acceptance of the presented legal agreements.\n\n### Parameters\n\n- `enrolmentId: string`\n\n- `legalAgreements: { type: string; version: string; }[]`\n\n- `X-Request-ID?: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nawait client.userEnrolments.legalAgreements.accept('36a22460-ebc8-4ffe-a213-1683c5a420c5', { legalAgreements: [{ type: 'terms and conditions', version: '1.0' }] })\n```",
    perLanguage: {
      typescript: {
        method: 'client.userEnrolments.legalAgreements.accept',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery();\n\nawait client.userEnrolments.legalAgreements.accept('36a22460-ebc8-4ffe-a213-1683c5a420c5', {\n  legalAgreements: [{ type: 'terms and conditions', version: '1.0' }],\n});",
      },
      python: {
        method: 'user_enrolments.legal_agreements.accept',
        example:
          'from plumery import Plumery\n\nclient = Plumery()\nclient.user_enrolments.legal_agreements.accept(\n    enrolment_id="36a22460-ebc8-4ffe-a213-1683c5a420c5",\n    legal_agreements=[{\n        "type": "terms and conditions",\n        "version": "1.0",\n    }],\n)',
      },
      java: {
        method: 'userEnrolments().legalAgreements().accept',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.userenrolments.legalagreements.LegalAgreementAcceptParams;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        LegalAgreementAcceptParams params = LegalAgreementAcceptParams.builder()\n            .enrolmentId("36a22460-ebc8-4ffe-a213-1683c5a420c5")\n            .addLegalAgreement(LegalAgreementAcceptParams.LegalAgreement.builder()\n                .type("terms and conditions")\n                .version("1.0")\n                .build())\n            .build();\n        client.userEnrolments().legalAgreements().accept(params);\n    }\n}',
      },
      kotlin: {
        method: 'userEnrolments().legalAgreements().accept',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.userenrolments.legalagreements.LegalAgreementAcceptParams\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: LegalAgreementAcceptParams = LegalAgreementAcceptParams.builder()\n        .enrolmentId("36a22460-ebc8-4ffe-a213-1683c5a420c5")\n        .addLegalAgreement(LegalAgreementAcceptParams.LegalAgreement.builder()\n            .type("terms and conditions")\n            .version("1.0")\n            .build())\n        .build()\n    client.userEnrolments().legalAgreements().accept(params)\n}',
      },
      go: {
        method: 'client.UserEnrolments.LegalAgreements.Accept',
        example:
          'package main\n\nimport (\n\t"context"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\terr := client.UserEnrolments.LegalAgreements.Accept(\n\t\tcontext.TODO(),\n\t\t"36a22460-ebc8-4ffe-a213-1683c5a420c5",\n\t\tplumery.UserEnrolmentLegalAgreementAcceptParams{\n\t\t\tLegalAgreements: plumery.F([]plumery.UserEnrolmentLegalAgreementAcceptParamsLegalAgreement{{\n\t\t\t\tType:    plumery.F("terms and conditions"),\n\t\t\t\tVersion: plumery.F("1.0"),\n\t\t\t}}),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
      },
      cli: {
        method: 'legal-agreements accept',
        example:
          "plumery user-enrolments:legal-agreements accept \\\n  --session 'My Session' \\\n  --enrolment-id 36a22460-ebc8-4ffe-a213-1683c5a420c5 \\\n  --legal-agreement \"{type: terms and conditions, version: '1.0'}\"",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/user-enrolments/$ENROLMENT_ID/legal-agreements:accept \\\n    -H \'Content-Type: application/json\' \\\n    -d \'{\n          "legalAgreements": [\n            {\n              "type": "terms and conditions",\n              "version": "1.0"\n            }\n          ]\n        }\'',
      },
    },
  },
  {
    name: 'retrieve',
    endpoint: '/api/v1/user-enrolments/steps/{enrolmentType}',
    httpMethod: 'get',
    summary: 'Get all Enrolment steps',
    description: 'Gets all possible steps for provided enrolment type',
    stainlessPath: '(resource) user-enrolments.steps > (method) retrieve',
    qualified: 'client.userEnrolments.steps.retrieve',
    params: [
      "enrolmentType: 'PERSONAL_ACCOUNT' | 'BUSINESS_ACCOUNT' | 'TEAM_MEMBER' | 'PERSONAL_LOAN_ACCOUNT';",
      'X-Request-ID?: string;',
    ],
    response: '{ enrolmentFlow?: { isMandatory?: boolean; step?: string; }[]; }',
    markdown:
      "## retrieve\n\n`client.userEnrolments.steps.retrieve(enrolmentType: 'PERSONAL_ACCOUNT' | 'BUSINESS_ACCOUNT' | 'TEAM_MEMBER' | 'PERSONAL_LOAN_ACCOUNT', X-Request-ID?: string): { enrolmentFlow?: object[]; }`\n\n**get** `/api/v1/user-enrolments/steps/{enrolmentType}`\n\nGets all possible steps for provided enrolment type\n\n### Parameters\n\n- `enrolmentType: 'PERSONAL_ACCOUNT' | 'BUSINESS_ACCOUNT' | 'TEAM_MEMBER' | 'PERSONAL_LOAN_ACCOUNT'`\n\n- `X-Request-ID?: string`\n\n### Returns\n\n- `{ enrolmentFlow?: { isMandatory?: boolean; step?: string; }[]; }`\n  All possible steps for the flow backed by the enrolment type\n\n  - `enrolmentFlow?: { isMandatory?: boolean; step?: string; }[]`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst step = await client.userEnrolments.steps.retrieve('PERSONAL_ACCOUNT');\n\nconsole.log(step);\n```",
    perLanguage: {
      typescript: {
        method: 'client.userEnrolments.steps.retrieve',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst step = await client.userEnrolments.steps.retrieve('PERSONAL_ACCOUNT');\n\nconsole.log(step.enrolmentFlow);",
      },
      python: {
        method: 'user_enrolments.steps.retrieve',
        example:
          'from plumery import Plumery\n\nclient = Plumery()\nstep = client.user_enrolments.steps.retrieve(\n    enrolment_type="PERSONAL_ACCOUNT",\n)\nprint(step.enrolment_flow)',
      },
      java: {
        method: 'userEnrolments().steps().retrieve',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.userenrolments.steps.StepRetrieveParams;\nimport com.plumery.api.models.userenrolments.steps.StepRetrieveResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        StepRetrieveResponse step = client.userEnrolments().steps().retrieve(StepRetrieveParams.EnrolmentType.PERSONAL_ACCOUNT);\n    }\n}',
      },
      kotlin: {
        method: 'userEnrolments().steps().retrieve',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.userenrolments.steps.StepRetrieveParams\nimport com.plumery.api.models.userenrolments.steps.StepRetrieveResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val step: StepRetrieveResponse = client.userEnrolments().steps().retrieve(StepRetrieveParams.EnrolmentType.PERSONAL_ACCOUNT)\n}',
      },
      go: {
        method: 'client.UserEnrolments.Steps.Get',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tstep, err := client.UserEnrolments.Steps.Get(\n\t\tcontext.TODO(),\n\t\tplumery.UserEnrolmentStepGetParamsEnrolmentTypePersonalAccount,\n\t\tplumery.UserEnrolmentStepGetParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", step.EnrolmentFlow)\n}\n',
      },
      cli: {
        method: 'steps retrieve',
        example:
          "plumery user-enrolments:steps retrieve \\\n  --session 'My Session' \\\n  --enrolment-type PERSONAL_ACCOUNT",
      },
      http: {
        example: 'curl https://api.plumery.com/api/v1/user-enrolments/steps/$ENROLMENT_TYPE',
      },
    },
  },
  {
    name: 'create',
    endpoint: '/api/v1/loan-applications',
    httpMethod: 'post',
    summary: 'Initiate New Loan Application',
    description:
      'Initiate the loan application process. This should always be the first step of the loan application process.',
    stainlessPath: '(resource) loan-applications > (method) create',
    qualified: 'client.loanApplications.create',
    params: ["loanApplicationType: 'RETAIL' | 'BUSINESS';", 'productId?: string;', 'X-Request-ID?: string;'],
    response: '{ loanApplicationId?: string; }',
    markdown:
      "## create\n\n`client.loanApplications.create(loanApplicationType: 'RETAIL' | 'BUSINESS', productId?: string, X-Request-ID?: string): { loanApplicationId?: string; }`\n\n**post** `/api/v1/loan-applications`\n\nInitiate the loan application process. This should always be the first step of the loan application process.\n\n### Parameters\n\n- `loanApplicationType: 'RETAIL' | 'BUSINESS'`\n\n- `productId?: string`\n  The loan product id from core banking engine. Mandatory for business loan applications.\n\n- `X-Request-ID?: string`\n\n### Returns\n\n- `{ loanApplicationId?: string; }`\n\n  - `loanApplicationId?: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst loanApplication = await client.loanApplications.create({ loanApplicationType: 'RETAIL' });\n\nconsole.log(loanApplication);\n```",
    perLanguage: {
      typescript: {
        method: 'client.loanApplications.create',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nconst loanApplication = await client.loanApplications.create({ loanApplicationType: 'RETAIL' });\n\nconsole.log(loanApplication.loanApplicationId);",
      },
      python: {
        method: 'loan_applications.create',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nloan_application = client.loan_applications.create(\n    loan_application_type="RETAIL",\n)\nprint(loan_application.loan_application_id)',
      },
      java: {
        method: 'loanApplications().create',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.loanapplications.LoanApplicationCreateParams;\nimport com.plumery.api.models.loanapplications.LoanApplicationCreateResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        LoanApplicationCreateParams params = LoanApplicationCreateParams.builder()\n            .loanApplicationType(LoanApplicationCreateParams.LoanApplicationType.RETAIL)\n            .build();\n        LoanApplicationCreateResponse loanApplication = client.loanApplications().create(params);\n    }\n}',
      },
      kotlin: {
        method: 'loanApplications().create',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.loanapplications.LoanApplicationCreateParams\nimport com.plumery.api.models.loanapplications.LoanApplicationCreateResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: LoanApplicationCreateParams = LoanApplicationCreateParams.builder()\n        .loanApplicationType(LoanApplicationCreateParams.LoanApplicationType.RETAIL)\n        .build()\n    val loanApplication: LoanApplicationCreateResponse = client.loanApplications().create(params)\n}',
      },
      go: {
        method: 'client.LoanApplications.New',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tloanApplication, err := client.LoanApplications.New(context.TODO(), plumery.LoanApplicationNewParams{\n\t\tLoanApplicationType: plumery.F(plumery.LoanApplicationNewParamsLoanApplicationTypeRetail),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", loanApplication.LoanApplicationID)\n}\n',
      },
      cli: {
        method: 'loan-applications create',
        example:
          "plumery loan-applications create \\\n  --session 'My Session' \\\n  --loan-application-type RETAIL",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/loan-applications \\\n    -H \'Content-Type: application/json\' \\\n    -H "Cookie: $SESSION" \\\n    -d \'{\n          "loanApplicationType": "RETAIL"\n        }\'',
      },
    },
  },
  {
    name: 'retrieve',
    endpoint: '/api/v1/loan-applications/{loanApplicationId}',
    httpMethod: 'get',
    summary: 'Get application details by ID',
    description: 'Get loan application details by ID.',
    stainlessPath: '(resource) loan-applications > (method) retrieve',
    qualified: 'client.loanApplications.retrieve',
    params: ['loanApplicationId: string;', 'X-Request-ID?: string;'],
    response:
      "{ id?: string; businessDetails?: object; collateralDetails?: object; employmentDetails?: object; financialInformation?: object; housingDetails?: object; loanDetails?: object; offer?: object; personalDetails?: object; purposeDetails?: string; status?: 'RCVD' | 'ACPT' | 'RJCT'; }",
    markdown:
      "## retrieve\n\n`client.loanApplications.retrieve(loanApplicationId: string, X-Request-ID?: string): { id?: string; businessDetails?: object; collateralDetails?: object; employmentDetails?: object; financialInformation?: object; housingDetails?: object; loanDetails?: object; offer?: object; personalDetails?: object; purposeDetails?: string; status?: 'RCVD' | 'ACPT' | 'RJCT'; }`\n\n**get** `/api/v1/loan-applications/{loanApplicationId}`\n\nGet loan application details by ID.\n\n### Parameters\n\n- `loanApplicationId: string`\n\n- `X-Request-ID?: string`\n\n### Returns\n\n- `{ id?: string; businessDetails?: { annualRevenue: { amount: number; currency: string; }; businessType: string; numberOfEmployees: number; yearsInBusiness: number; }; collateralDetails?: { condition: 'EXCELLENT' | 'GOOD' | 'FAIR'; description: string; type: 'VEHICLE' | 'PROPERTY' | 'EQUIPMENT'; value: { amount: number; currency: string; }; }; employmentDetails?: { employmentStatus: 'EMPLOYED' | 'HOMEMAKER' | 'UNEMPLOYED' | 'RETIRED' | 'SELF_EMPLOYED'; incomeFrequency: 'MONTHLY' | 'FORTNIGHTLY' | 'WEEKLY' | 'UNDEFINED'; monthlyIncome: { amount: number; currency: string; }; occupation: string; originOfResources: string; }; financialInformation?: { monthlyExpenses: { amount: number; currency: string; }; monthlyRevenue: { amount: number; currency: string; }; netMonthlyProfit: { amount: number; currency: string; }; }; housingDetails?: { housingSituation: 'RENTER' | 'HOMEOWNER_WITH_MORTGAGE' | 'HOMEOWNER_WITHOUT_MORTGAGE'; monthlyHousingCost: { amount: number; currency: string; }; yearsLivingAtHome: number; landlinePhoneNumber?: string; }; loanDetails?: { firstRepaymentDate: string; loanAmount: { amount: number; currency: string; }; loanDuration: number; repaymentInterval?: number; repaymentUnit?: 'MONTHS'; }; offer?: { amount?: number; currencyCode?: string; firstRepaymentDate?: string; offerId?: string; periodCount?: number; }; personalDetails?: { creditDestination: string; everDivorced: boolean; financialDependents: number; maritalStatus: string; monthlyExpenses: { amount: number; currency: string; }; signatureSerialNumber?: string; }; purposeDetails?: string; status?: 'RCVD' | 'ACPT' | 'RJCT'; }`\n\n  - `id?: string`\n  - `businessDetails?: { annualRevenue: { amount: number; currency: string; }; businessType: string; numberOfEmployees: number; yearsInBusiness: number; }`\n  - `collateralDetails?: { condition: 'EXCELLENT' | 'GOOD' | 'FAIR'; description: string; type: 'VEHICLE' | 'PROPERTY' | 'EQUIPMENT'; value: { amount: number; currency: string; }; }`\n  - `employmentDetails?: { employmentStatus: 'EMPLOYED' | 'HOMEMAKER' | 'UNEMPLOYED' | 'RETIRED' | 'SELF_EMPLOYED'; incomeFrequency: 'MONTHLY' | 'FORTNIGHTLY' | 'WEEKLY' | 'UNDEFINED'; monthlyIncome: { amount: number; currency: string; }; occupation: string; originOfResources: string; }`\n  - `financialInformation?: { monthlyExpenses: { amount: number; currency: string; }; monthlyRevenue: { amount: number; currency: string; }; netMonthlyProfit: { amount: number; currency: string; }; }`\n  - `housingDetails?: { housingSituation: 'RENTER' | 'HOMEOWNER_WITH_MORTGAGE' | 'HOMEOWNER_WITHOUT_MORTGAGE'; monthlyHousingCost: { amount: number; currency: string; }; yearsLivingAtHome: number; landlinePhoneNumber?: string; }`\n  - `loanDetails?: { firstRepaymentDate: string; loanAmount: { amount: number; currency: string; }; loanDuration: number; repaymentInterval?: number; repaymentUnit?: 'MONTHS'; }`\n  - `offer?: { amount?: number; currencyCode?: string; firstRepaymentDate?: string; offerId?: string; periodCount?: number; }`\n  - `personalDetails?: { creditDestination: string; everDivorced: boolean; financialDependents: number; maritalStatus: string; monthlyExpenses: { amount: number; currency: string; }; signatureSerialNumber?: string; }`\n  - `purposeDetails?: string`\n  - `status?: 'RCVD' | 'ACPT' | 'RJCT'`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst loanApplication = await client.loanApplications.retrieve('36a22460-ebc8-4ffe-a213-1683c5a420c5');\n\nconsole.log(loanApplication);\n```",
    perLanguage: {
      typescript: {
        method: 'client.loanApplications.retrieve',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nconst loanApplication = await client.loanApplications.retrieve(\n  '36a22460-ebc8-4ffe-a213-1683c5a420c5',\n);\n\nconsole.log(loanApplication.id);",
      },
      python: {
        method: 'loan_applications.retrieve',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nloan_application = client.loan_applications.retrieve(\n    loan_application_id="36a22460-ebc8-4ffe-a213-1683c5a420c5",\n)\nprint(loan_application.id)',
      },
      java: {
        method: 'loanApplications().retrieve',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.loanapplications.LoanApplicationRetrieveParams;\nimport com.plumery.api.models.loanapplications.LoanApplicationRetrieveResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        LoanApplicationRetrieveResponse loanApplication = client.loanApplications().retrieve("36a22460-ebc8-4ffe-a213-1683c5a420c5");\n    }\n}',
      },
      kotlin: {
        method: 'loanApplications().retrieve',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.loanapplications.LoanApplicationRetrieveParams\nimport com.plumery.api.models.loanapplications.LoanApplicationRetrieveResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val loanApplication: LoanApplicationRetrieveResponse = client.loanApplications().retrieve("36a22460-ebc8-4ffe-a213-1683c5a420c5")\n}',
      },
      go: {
        method: 'client.LoanApplications.Get',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tloanApplication, err := client.LoanApplications.Get(\n\t\tcontext.TODO(),\n\t\t"36a22460-ebc8-4ffe-a213-1683c5a420c5",\n\t\tplumery.LoanApplicationGetParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", loanApplication.ID)\n}\n',
      },
      cli: {
        method: 'loan-applications retrieve',
        example:
          "plumery loan-applications retrieve \\\n  --session 'My Session' \\\n  --loan-application-id 36a22460-ebc8-4ffe-a213-1683c5a420c5",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/loan-applications/$LOAN_APPLICATION_ID \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'previewSchedule',
    endpoint: '/api/v1/loan-applications/{loanApplicationId}:preview-schedule',
    httpMethod: 'post',
    summary: 'Generate A Loan Schedule Preview',
    description: 'Generate a schedule preview for a loan application.',
    stainlessPath: '(resource) loan-applications > (method) previewSchedule',
    qualified: 'client.loanApplications.previewSchedule',
    params: [
      'loanApplicationId: string;',
      "loanDetails: { firstRepaymentDate: string; loanAmount: { amount: number; currency: string; }; loanDuration: number; repaymentInterval?: number; repaymentUnit?: 'MONTHS'; };",
      'X-Request-ID?: string;',
    ],
    response:
      '{ installments?: { feeAmount?: { amount: number; currency: string; }; feeTaxAmount?: { amount: number; currency: string; }; interestAmount?: { amount: number; currency: string; }; interestTaxAmount?: { amount: number; currency: string; }; number?: number; principalAmount?: { amount: number; currency: string; }; repaymentDate?: string; }[]; }',
    markdown:
      "## previewSchedule\n\n`client.loanApplications.previewSchedule(loanApplicationId: string, loanDetails: { firstRepaymentDate: string; loanAmount: { amount: number; currency: string; }; loanDuration: number; repaymentInterval?: number; repaymentUnit?: 'MONTHS'; }, X-Request-ID?: string): { installments?: object[]; }`\n\n**post** `/api/v1/loan-applications/{loanApplicationId}:preview-schedule`\n\nGenerate a schedule preview for a loan application.\n\n### Parameters\n\n- `loanApplicationId: string`\n\n- `loanDetails: { firstRepaymentDate: string; loanAmount: { amount: number; currency: string; }; loanDuration: number; repaymentInterval?: number; repaymentUnit?: 'MONTHS'; }`\n  - `firstRepaymentDate: string`\n  - `loanAmount: { amount: number; currency: string; }`\n  - `loanDuration: number`\n  - `repaymentInterval?: number`\n  - `repaymentUnit?: 'MONTHS'`\n\n- `X-Request-ID?: string`\n\n### Returns\n\n- `{ installments?: { feeAmount?: { amount: number; currency: string; }; feeTaxAmount?: { amount: number; currency: string; }; interestAmount?: { amount: number; currency: string; }; interestTaxAmount?: { amount: number; currency: string; }; number?: number; principalAmount?: { amount: number; currency: string; }; repaymentDate?: string; }[]; }`\n\n  - `installments?: { feeAmount?: { amount: number; currency: string; }; feeTaxAmount?: { amount: number; currency: string; }; interestAmount?: { amount: number; currency: string; }; interestTaxAmount?: { amount: number; currency: string; }; number?: number; principalAmount?: { amount: number; currency: string; }; repaymentDate?: string; }[]`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.loanApplications.previewSchedule('36a22460-ebc8-4ffe-a213-1683c5a420c5', { loanDetails: {\n  firstRepaymentDate: 'firstRepaymentDate',\n  loanAmount: { amount: 0, currency: 'EUR' },\n  loanDuration: 0,\n} });\n\nconsole.log(response);\n```",
    perLanguage: {
      typescript: {
        method: 'client.loanApplications.previewSchedule',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nconst response = await client.loanApplications.previewSchedule(\n  '36a22460-ebc8-4ffe-a213-1683c5a420c5',\n  {\n    loanDetails: {\n      firstRepaymentDate: 'firstRepaymentDate',\n      loanAmount: { amount: 0, currency: 'EUR' },\n      loanDuration: 0,\n    },\n  },\n);\n\nconsole.log(response.installments);",
      },
      python: {
        method: 'loan_applications.preview_schedule',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nresponse = client.loan_applications.preview_schedule(\n    loan_application_id="36a22460-ebc8-4ffe-a213-1683c5a420c5",\n    loan_details={\n        "first_repayment_date": "firstRepaymentDate",\n        "loan_amount": {\n            "amount": 0,\n            "currency": "EUR",\n        },\n        "loan_duration": 0,\n    },\n)\nprint(response.installments)',
      },
      java: {
        method: 'loanApplications().previewSchedule',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.loanapplications.LoanApplicationPreviewScheduleParams;\nimport com.plumery.api.models.loanapplications.LoanApplicationPreviewScheduleResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        LoanApplicationPreviewScheduleParams params = LoanApplicationPreviewScheduleParams.builder()\n            .loanApplicationId("36a22460-ebc8-4ffe-a213-1683c5a420c5")\n            .loanDetails(LoanApplicationPreviewScheduleParams.LoanDetails.builder()\n                .firstRepaymentDate("firstRepaymentDate")\n                .loanAmount(LoanApplicationPreviewScheduleParams.LoanDetails.LoanAmount.builder()\n                    .amount(0.0)\n                    .currency("EUR")\n                    .build())\n                .loanDuration(0)\n                .build())\n            .build();\n        LoanApplicationPreviewScheduleResponse response = client.loanApplications().previewSchedule(params);\n    }\n}',
      },
      kotlin: {
        method: 'loanApplications().previewSchedule',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.loanapplications.LoanApplicationPreviewScheduleParams\nimport com.plumery.api.models.loanapplications.LoanApplicationPreviewScheduleResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: LoanApplicationPreviewScheduleParams = LoanApplicationPreviewScheduleParams.builder()\n        .loanApplicationId("36a22460-ebc8-4ffe-a213-1683c5a420c5")\n        .loanDetails(LoanApplicationPreviewScheduleParams.LoanDetails.builder()\n            .firstRepaymentDate("firstRepaymentDate")\n            .loanAmount(LoanApplicationPreviewScheduleParams.LoanDetails.LoanAmount.builder()\n                .amount(0.0)\n                .currency("EUR")\n                .build())\n            .loanDuration(0)\n            .build())\n        .build()\n    val response: LoanApplicationPreviewScheduleResponse = client.loanApplications().previewSchedule(params)\n}',
      },
      go: {
        method: 'client.LoanApplications.PreviewSchedule',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tresponse, err := client.LoanApplications.PreviewSchedule(\n\t\tcontext.TODO(),\n\t\t"36a22460-ebc8-4ffe-a213-1683c5a420c5",\n\t\tplumery.LoanApplicationPreviewScheduleParams{\n\t\t\tLoanDetails: plumery.F(plumery.LoanApplicationPreviewScheduleParamsLoanDetails{\n\t\t\t\tFirstRepaymentDate: plumery.F("firstRepaymentDate"),\n\t\t\t\tLoanAmount: plumery.F(plumery.LoanApplicationPreviewScheduleParamsLoanDetailsLoanAmount{\n\t\t\t\t\tAmount:   plumery.F(0.000000),\n\t\t\t\t\tCurrency: plumery.F("EUR"),\n\t\t\t\t}),\n\t\t\t\tLoanDuration: plumery.F(int64(0)),\n\t\t\t}),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.Installments)\n}\n',
      },
      cli: {
        method: 'loan-applications previewSchedule',
        example:
          "plumery loan-applications preview-schedule \\\n  --session 'My Session' \\\n  --loan-application-id 36a22460-ebc8-4ffe-a213-1683c5a420c5 \\\n  --loan-details '{firstRepaymentDate: firstRepaymentDate, loanAmount: {amount: 0, currency: EUR}, loanDuration: 0}'",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/loan-applications/$LOAN_APPLICATION_ID:preview-schedule \\\n    -H \'Content-Type: application/json\' \\\n    -H "Cookie: $SESSION" \\\n    -d \'{\n          "loanDetails": {\n            "firstRepaymentDate": "firstRepaymentDate",\n            "loanAmount": {\n              "amount": 0,\n              "currency": "EUR"\n            },\n            "loanDuration": 0\n          }\n        }\'',
      },
    },
  },
  {
    name: 'submitApplicationDetails',
    endpoint: '/api/v1/loan-applications/{loanApplicationId}:submit-application-details',
    httpMethod: 'post',
    summary: 'Submit Application Details',
    description: 'Triggers the application details submission.',
    stainlessPath: '(resource) loan-applications > (method) submitApplicationDetails',
    qualified: 'client.loanApplications.submitApplicationDetails',
    params: [
      'loanApplicationId: string;',
      "employmentDetails: { employmentStatus: 'EMPLOYED' | 'HOMEMAKER' | 'UNEMPLOYED' | 'RETIRED' | 'SELF_EMPLOYED'; incomeFrequency: 'MONTHLY' | 'FORTNIGHTLY' | 'WEEKLY' | 'UNDEFINED'; monthlyIncome: { amount: number; currency: string; }; occupation: string; originOfResources: string; };",
      "housingDetails: { housingSituation: 'RENTER' | 'HOMEOWNER_WITH_MORTGAGE' | 'HOMEOWNER_WITHOUT_MORTGAGE'; monthlyHousingCost: { amount: number; currency: string; }; yearsLivingAtHome: number; landlinePhoneNumber?: string; };",
      'personalDetails: { creditDestination: string; everDivorced: boolean; financialDependents: number; maritalStatus: string; monthlyExpenses: { amount: number; currency: string; }; signatureSerialNumber?: string; };',
      'X-Request-ID?: string;',
    ],
    markdown:
      "## submitApplicationDetails\n\n`client.loanApplications.submitApplicationDetails(loanApplicationId: string, employmentDetails: { employmentStatus: 'EMPLOYED' | 'HOMEMAKER' | 'UNEMPLOYED' | 'RETIRED' | 'SELF_EMPLOYED'; incomeFrequency: 'MONTHLY' | 'FORTNIGHTLY' | 'WEEKLY' | 'UNDEFINED'; monthlyIncome: { amount: number; currency: string; }; occupation: string; originOfResources: string; }, housingDetails: { housingSituation: 'RENTER' | 'HOMEOWNER_WITH_MORTGAGE' | 'HOMEOWNER_WITHOUT_MORTGAGE'; monthlyHousingCost: { amount: number; currency: string; }; yearsLivingAtHome: number; landlinePhoneNumber?: string; }, personalDetails: { creditDestination: string; everDivorced: boolean; financialDependents: number; maritalStatus: string; monthlyExpenses: { amount: number; currency: string; }; signatureSerialNumber?: string; }, X-Request-ID?: string): void`\n\n**post** `/api/v1/loan-applications/{loanApplicationId}:submit-application-details`\n\nTriggers the application details submission.\n\n### Parameters\n\n- `loanApplicationId: string`\n\n- `employmentDetails: { employmentStatus: 'EMPLOYED' | 'HOMEMAKER' | 'UNEMPLOYED' | 'RETIRED' | 'SELF_EMPLOYED'; incomeFrequency: 'MONTHLY' | 'FORTNIGHTLY' | 'WEEKLY' | 'UNDEFINED'; monthlyIncome: { amount: number; currency: string; }; occupation: string; originOfResources: string; }`\n  - `employmentStatus: 'EMPLOYED' | 'HOMEMAKER' | 'UNEMPLOYED' | 'RETIRED' | 'SELF_EMPLOYED'`\n  - `incomeFrequency: 'MONTHLY' | 'FORTNIGHTLY' | 'WEEKLY' | 'UNDEFINED'`\n  - `monthlyIncome: { amount: number; currency: string; }`\n  - `occupation: string`\n  - `originOfResources: string`\n\n- `housingDetails: { housingSituation: 'RENTER' | 'HOMEOWNER_WITH_MORTGAGE' | 'HOMEOWNER_WITHOUT_MORTGAGE'; monthlyHousingCost: { amount: number; currency: string; }; yearsLivingAtHome: number; landlinePhoneNumber?: string; }`\n  - `housingSituation: 'RENTER' | 'HOMEOWNER_WITH_MORTGAGE' | 'HOMEOWNER_WITHOUT_MORTGAGE'`\n  - `monthlyHousingCost: { amount: number; currency: string; }`\n  - `yearsLivingAtHome: number`\n  - `landlinePhoneNumber?: string`\n\n- `personalDetails: { creditDestination: string; everDivorced: boolean; financialDependents: number; maritalStatus: string; monthlyExpenses: { amount: number; currency: string; }; signatureSerialNumber?: string; }`\n  - `creditDestination: string`\n  - `everDivorced: boolean`\n  - `financialDependents: number`\n  - `maritalStatus: string`\n  - `monthlyExpenses: { amount: number; currency: string; }`\n  - `signatureSerialNumber?: string`\n\n- `X-Request-ID?: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nawait client.loanApplications.submitApplicationDetails('36a22460-ebc8-4ffe-a213-1683c5a420c5', {\n  employmentDetails: {\n  employmentStatus: 'EMPLOYED',\n  incomeFrequency: 'MONTHLY',\n  monthlyIncome: { amount: 0, currency: 'EUR' },\n  occupation: 'Developer',\n  originOfResources: 'Salary',\n},\n  housingDetails: {\n  housingSituation: 'RENTER',\n  monthlyHousingCost: { amount: 0, currency: 'EUR' },\n  yearsLivingAtHome: 0,\n},\n  personalDetails: {\n  creditDestination: 'Personal',\n  everDivorced: true,\n  financialDependents: 0,\n  maritalStatus: 'Married',\n  monthlyExpenses: { amount: 0, currency: 'EUR' },\n},\n})\n```",
    perLanguage: {
      typescript: {
        method: 'client.loanApplications.submitApplicationDetails',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nawait client.loanApplications.submitApplicationDetails('36a22460-ebc8-4ffe-a213-1683c5a420c5', {\n  employmentDetails: {\n    employmentStatus: 'EMPLOYED',\n    incomeFrequency: 'MONTHLY',\n    monthlyIncome: { amount: 0, currency: 'EUR' },\n    occupation: 'Developer',\n    originOfResources: 'Salary',\n  },\n  housingDetails: {\n    housingSituation: 'RENTER',\n    monthlyHousingCost: { amount: 0, currency: 'EUR' },\n    yearsLivingAtHome: 0,\n  },\n  personalDetails: {\n    creditDestination: 'Personal',\n    everDivorced: true,\n    financialDependents: 0,\n    maritalStatus: 'Married',\n    monthlyExpenses: { amount: 0, currency: 'EUR' },\n  },\n});",
      },
      python: {
        method: 'loan_applications.submit_application_details',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nclient.loan_applications.submit_application_details(\n    loan_application_id="36a22460-ebc8-4ffe-a213-1683c5a420c5",\n    employment_details={\n        "employment_status": "EMPLOYED",\n        "income_frequency": "MONTHLY",\n        "monthly_income": {\n            "amount": 0,\n            "currency": "EUR",\n        },\n        "occupation": "Developer",\n        "origin_of_resources": "Salary",\n    },\n    housing_details={\n        "housing_situation": "RENTER",\n        "monthly_housing_cost": {\n            "amount": 0,\n            "currency": "EUR",\n        },\n        "years_living_at_home": 0,\n    },\n    personal_details={\n        "credit_destination": "Personal",\n        "ever_divorced": True,\n        "financial_dependents": 0,\n        "marital_status": "Married",\n        "monthly_expenses": {\n            "amount": 0,\n            "currency": "EUR",\n        },\n    },\n)',
      },
      java: {
        method: 'loanApplications().submitApplicationDetails',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.loanapplications.LoanApplicationSubmitApplicationDetailsParams;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        LoanApplicationSubmitApplicationDetailsParams params = LoanApplicationSubmitApplicationDetailsParams.builder()\n            .loanApplicationId("36a22460-ebc8-4ffe-a213-1683c5a420c5")\n            .employmentDetails(LoanApplicationSubmitApplicationDetailsParams.EmploymentDetails.builder()\n                .employmentStatus(LoanApplicationSubmitApplicationDetailsParams.EmploymentDetails.EmploymentStatus.EMPLOYED)\n                .incomeFrequency(LoanApplicationSubmitApplicationDetailsParams.EmploymentDetails.IncomeFrequency.MONTHLY)\n                .monthlyIncome(LoanApplicationSubmitApplicationDetailsParams.EmploymentDetails.MonthlyIncome.builder()\n                    .amount(0.0)\n                    .currency("EUR")\n                    .build())\n                .occupation("Developer")\n                .originOfResources("Salary")\n                .build())\n            .housingDetails(LoanApplicationSubmitApplicationDetailsParams.HousingDetails.builder()\n                .housingSituation(LoanApplicationSubmitApplicationDetailsParams.HousingDetails.HousingSituation.RENTER)\n                .monthlyHousingCost(LoanApplicationSubmitApplicationDetailsParams.HousingDetails.MonthlyHousingCost.builder()\n                    .amount(0.0)\n                    .currency("EUR")\n                    .build())\n                .yearsLivingAtHome(0)\n                .build())\n            .personalDetails(LoanApplicationSubmitApplicationDetailsParams.PersonalDetails.builder()\n                .creditDestination("Personal")\n                .everDivorced(true)\n                .financialDependents(0)\n                .maritalStatus("Married")\n                .monthlyExpenses(LoanApplicationSubmitApplicationDetailsParams.PersonalDetails.MonthlyExpenses.builder()\n                    .amount(0.0)\n                    .currency("EUR")\n                    .build())\n                .build())\n            .build();\n        client.loanApplications().submitApplicationDetails(params);\n    }\n}',
      },
      kotlin: {
        method: 'loanApplications().submitApplicationDetails',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.loanapplications.LoanApplicationSubmitApplicationDetailsParams\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: LoanApplicationSubmitApplicationDetailsParams = LoanApplicationSubmitApplicationDetailsParams.builder()\n        .loanApplicationId("36a22460-ebc8-4ffe-a213-1683c5a420c5")\n        .employmentDetails(LoanApplicationSubmitApplicationDetailsParams.EmploymentDetails.builder()\n            .employmentStatus(LoanApplicationSubmitApplicationDetailsParams.EmploymentDetails.EmploymentStatus.EMPLOYED)\n            .incomeFrequency(LoanApplicationSubmitApplicationDetailsParams.EmploymentDetails.IncomeFrequency.MONTHLY)\n            .monthlyIncome(LoanApplicationSubmitApplicationDetailsParams.EmploymentDetails.MonthlyIncome.builder()\n                .amount(0.0)\n                .currency("EUR")\n                .build())\n            .occupation("Developer")\n            .originOfResources("Salary")\n            .build())\n        .housingDetails(LoanApplicationSubmitApplicationDetailsParams.HousingDetails.builder()\n            .housingSituation(LoanApplicationSubmitApplicationDetailsParams.HousingDetails.HousingSituation.RENTER)\n            .monthlyHousingCost(LoanApplicationSubmitApplicationDetailsParams.HousingDetails.MonthlyHousingCost.builder()\n                .amount(0.0)\n                .currency("EUR")\n                .build())\n            .yearsLivingAtHome(0)\n            .build())\n        .personalDetails(LoanApplicationSubmitApplicationDetailsParams.PersonalDetails.builder()\n            .creditDestination("Personal")\n            .everDivorced(true)\n            .financialDependents(0)\n            .maritalStatus("Married")\n            .monthlyExpenses(LoanApplicationSubmitApplicationDetailsParams.PersonalDetails.MonthlyExpenses.builder()\n                .amount(0.0)\n                .currency("EUR")\n                .build())\n            .build())\n        .build()\n    client.loanApplications().submitApplicationDetails(params)\n}',
      },
      go: {
        method: 'client.LoanApplications.SubmitApplicationDetails',
        example:
          'package main\n\nimport (\n\t"context"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\terr := client.LoanApplications.SubmitApplicationDetails(\n\t\tcontext.TODO(),\n\t\t"36a22460-ebc8-4ffe-a213-1683c5a420c5",\n\t\tplumery.LoanApplicationSubmitApplicationDetailsParams{\n\t\t\tEmploymentDetails: plumery.F(plumery.LoanApplicationSubmitApplicationDetailsParamsEmploymentDetails{\n\t\t\t\tEmploymentStatus: plumery.F(plumery.LoanApplicationSubmitApplicationDetailsParamsEmploymentDetailsEmploymentStatusEmployed),\n\t\t\t\tIncomeFrequency:  plumery.F(plumery.LoanApplicationSubmitApplicationDetailsParamsEmploymentDetailsIncomeFrequencyMonthly),\n\t\t\t\tMonthlyIncome: plumery.F(plumery.LoanApplicationSubmitApplicationDetailsParamsEmploymentDetailsMonthlyIncome{\n\t\t\t\t\tAmount:   plumery.F(0.000000),\n\t\t\t\t\tCurrency: plumery.F("EUR"),\n\t\t\t\t}),\n\t\t\t\tOccupation:        plumery.F("Developer"),\n\t\t\t\tOriginOfResources: plumery.F("Salary"),\n\t\t\t}),\n\t\t\tHousingDetails: plumery.F(plumery.LoanApplicationSubmitApplicationDetailsParamsHousingDetails{\n\t\t\t\tHousingSituation: plumery.F(plumery.LoanApplicationSubmitApplicationDetailsParamsHousingDetailsHousingSituationRenter),\n\t\t\t\tMonthlyHousingCost: plumery.F(plumery.LoanApplicationSubmitApplicationDetailsParamsHousingDetailsMonthlyHousingCost{\n\t\t\t\t\tAmount:   plumery.F(0.000000),\n\t\t\t\t\tCurrency: plumery.F("EUR"),\n\t\t\t\t}),\n\t\t\t\tYearsLivingAtHome: plumery.F(int64(0)),\n\t\t\t}),\n\t\t\tPersonalDetails: plumery.F(plumery.LoanApplicationSubmitApplicationDetailsParamsPersonalDetails{\n\t\t\t\tCreditDestination:   plumery.F("Personal"),\n\t\t\t\tEverDivorced:        plumery.F(true),\n\t\t\t\tFinancialDependents: plumery.F(int64(0)),\n\t\t\t\tMaritalStatus:       plumery.F("Married"),\n\t\t\t\tMonthlyExpenses: plumery.F(plumery.LoanApplicationSubmitApplicationDetailsParamsPersonalDetailsMonthlyExpenses{\n\t\t\t\t\tAmount:   plumery.F(0.000000),\n\t\t\t\t\tCurrency: plumery.F("EUR"),\n\t\t\t\t}),\n\t\t\t}),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
      },
      cli: {
        method: 'loan-applications submitApplicationDetails',
        example:
          "plumery loan-applications submit-application-details \\\n  --session 'My Session' \\\n  --loan-application-id 36a22460-ebc8-4ffe-a213-1683c5a420c5 \\\n  --employment-details '{employmentStatus: EMPLOYED, incomeFrequency: MONTHLY, monthlyIncome: {amount: 0, currency: EUR}, occupation: Developer, originOfResources: Salary}' \\\n  --housing-details '{housingSituation: RENTER, monthlyHousingCost: {amount: 0, currency: EUR}, yearsLivingAtHome: 0}' \\\n  --personal-details '{creditDestination: Personal, everDivorced: true, financialDependents: 0, maritalStatus: Married, monthlyExpenses: {amount: 0, currency: EUR}}'",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/loan-applications/$LOAN_APPLICATION_ID:submit-application-details \\\n    -H \'Content-Type: application/json\' \\\n    -H "Cookie: $SESSION" \\\n    -d \'{\n          "employmentDetails": {\n            "employmentStatus": "EMPLOYED",\n            "incomeFrequency": "MONTHLY",\n            "monthlyIncome": {\n              "amount": 0,\n              "currency": "EUR"\n            },\n            "occupation": "Developer",\n            "originOfResources": "Salary"\n          },\n          "housingDetails": {\n            "housingSituation": "RENTER",\n            "monthlyHousingCost": {\n              "amount": 0,\n              "currency": "EUR"\n            },\n            "yearsLivingAtHome": 0\n          },\n          "personalDetails": {\n            "creditDestination": "Personal",\n            "everDivorced": true,\n            "financialDependents": 0,\n            "maritalStatus": "Married",\n            "monthlyExpenses": {\n              "amount": 0,\n              "currency": "EUR"\n            }\n          }\n        }\'',
      },
    },
  },
  {
    name: 'submitCreditBureau',
    endpoint: '/api/v1/loan-applications/{loanApplicationId}:submit-credit-bureau',
    httpMethod: 'post',
    summary: 'Submit Information To The Credit Bureau',
    description: 'Triggers the submission of information to the credit bureau.',
    stainlessPath: '(resource) loan-applications > (method) submitCreditBureau',
    qualified: 'client.loanApplications.submitCreditBureau',
    params: ['loanApplicationId: string;', 'X-Request-ID?: string;'],
    markdown:
      "## submitCreditBureau\n\n`client.loanApplications.submitCreditBureau(loanApplicationId: string, X-Request-ID?: string): void`\n\n**post** `/api/v1/loan-applications/{loanApplicationId}:submit-credit-bureau`\n\nTriggers the submission of information to the credit bureau.\n\n### Parameters\n\n- `loanApplicationId: string`\n\n- `X-Request-ID?: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nawait client.loanApplications.submitCreditBureau('36a22460-ebc8-4ffe-a213-1683c5a420c5')\n```",
    perLanguage: {
      typescript: {
        method: 'client.loanApplications.submitCreditBureau',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nawait client.loanApplications.submitCreditBureau('36a22460-ebc8-4ffe-a213-1683c5a420c5');",
      },
      python: {
        method: 'loan_applications.submit_credit_bureau',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nclient.loan_applications.submit_credit_bureau(\n    loan_application_id="36a22460-ebc8-4ffe-a213-1683c5a420c5",\n)',
      },
      java: {
        method: 'loanApplications().submitCreditBureau',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.loanapplications.LoanApplicationSubmitCreditBureauParams;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        client.loanApplications().submitCreditBureau("36a22460-ebc8-4ffe-a213-1683c5a420c5");\n    }\n}',
      },
      kotlin: {
        method: 'loanApplications().submitCreditBureau',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.loanapplications.LoanApplicationSubmitCreditBureauParams\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    client.loanApplications().submitCreditBureau("36a22460-ebc8-4ffe-a213-1683c5a420c5")\n}',
      },
      go: {
        method: 'client.LoanApplications.SubmitCreditBureau',
        example:
          'package main\n\nimport (\n\t"context"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\terr := client.LoanApplications.SubmitCreditBureau(\n\t\tcontext.TODO(),\n\t\t"36a22460-ebc8-4ffe-a213-1683c5a420c5",\n\t\tplumery.LoanApplicationSubmitCreditBureauParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
      },
      cli: {
        method: 'loan-applications submitCreditBureau',
        example:
          "plumery loan-applications submit-credit-bureau \\\n  --session 'My Session' \\\n  --loan-application-id 36a22460-ebc8-4ffe-a213-1683c5a420c5",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/loan-applications/$LOAN_APPLICATION_ID:submit-credit-bureau \\\n    -X POST \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'generateOffer',
    endpoint: '/api/v1/loan-applications/{loanApplicationId}:generate-offer',
    httpMethod: 'post',
    summary: 'Generate Loan Offer',
    description: 'Generate offer taking into account information provided during loan application input.',
    stainlessPath: '(resource) loan-applications > (method) generateOffer',
    qualified: 'client.loanApplications.generateOffer',
    params: ['loanApplicationId: string;', 'X-Request-ID?: string;'],
    response:
      "{ installments?: { feeAmount?: { amount: number; currency: string; }; feeTaxAmount?: { amount: number; currency: string; }; interestAmount?: { amount: number; currency: string; }; interestTaxAmount?: { amount: number; currency: string; }; number?: number; principalAmount?: { amount: number; currency: string; }; repaymentDate?: string; }[]; loanDetails?: { firstRepaymentDate: string; interestRate: number; loanAmount: { amount: number; currency: string; }; loanDuration: number; repaymentInterval?: number; repaymentUnit?: 'MONTHS'; }; }",
    markdown:
      "## generateOffer\n\n`client.loanApplications.generateOffer(loanApplicationId: string, X-Request-ID?: string): { installments?: object[]; loanDetails?: object; }`\n\n**post** `/api/v1/loan-applications/{loanApplicationId}:generate-offer`\n\nGenerate offer taking into account information provided during loan application input.\n\n### Parameters\n\n- `loanApplicationId: string`\n\n- `X-Request-ID?: string`\n\n### Returns\n\n- `{ installments?: { feeAmount?: { amount: number; currency: string; }; feeTaxAmount?: { amount: number; currency: string; }; interestAmount?: { amount: number; currency: string; }; interestTaxAmount?: { amount: number; currency: string; }; number?: number; principalAmount?: { amount: number; currency: string; }; repaymentDate?: string; }[]; loanDetails?: { firstRepaymentDate: string; interestRate: number; loanAmount: { amount: number; currency: string; }; loanDuration: number; repaymentInterval?: number; repaymentUnit?: 'MONTHS'; }; }`\n\n  - `installments?: { feeAmount?: { amount: number; currency: string; }; feeTaxAmount?: { amount: number; currency: string; }; interestAmount?: { amount: number; currency: string; }; interestTaxAmount?: { amount: number; currency: string; }; number?: number; principalAmount?: { amount: number; currency: string; }; repaymentDate?: string; }[]`\n  - `loanDetails?: { firstRepaymentDate: string; interestRate: number; loanAmount: { amount: number; currency: string; }; loanDuration: number; repaymentInterval?: number; repaymentUnit?: 'MONTHS'; }`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.loanApplications.generateOffer('36a22460-ebc8-4ffe-a213-1683c5a420c5');\n\nconsole.log(response);\n```",
    perLanguage: {
      typescript: {
        method: 'client.loanApplications.generateOffer',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nconst response = await client.loanApplications.generateOffer(\n  '36a22460-ebc8-4ffe-a213-1683c5a420c5',\n);\n\nconsole.log(response.installments);",
      },
      python: {
        method: 'loan_applications.generate_offer',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nresponse = client.loan_applications.generate_offer(\n    loan_application_id="36a22460-ebc8-4ffe-a213-1683c5a420c5",\n)\nprint(response.installments)',
      },
      java: {
        method: 'loanApplications().generateOffer',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.loanapplications.LoanApplicationGenerateOfferParams;\nimport com.plumery.api.models.loanapplications.LoanApplicationGenerateOfferResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        LoanApplicationGenerateOfferResponse response = client.loanApplications().generateOffer("36a22460-ebc8-4ffe-a213-1683c5a420c5");\n    }\n}',
      },
      kotlin: {
        method: 'loanApplications().generateOffer',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.loanapplications.LoanApplicationGenerateOfferParams\nimport com.plumery.api.models.loanapplications.LoanApplicationGenerateOfferResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val response: LoanApplicationGenerateOfferResponse = client.loanApplications().generateOffer("36a22460-ebc8-4ffe-a213-1683c5a420c5")\n}',
      },
      go: {
        method: 'client.LoanApplications.GenerateOffer',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tresponse, err := client.LoanApplications.GenerateOffer(\n\t\tcontext.TODO(),\n\t\t"36a22460-ebc8-4ffe-a213-1683c5a420c5",\n\t\tplumery.LoanApplicationGenerateOfferParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.Installments)\n}\n',
      },
      cli: {
        method: 'loan-applications generateOffer',
        example:
          "plumery loan-applications generate-offer \\\n  --session 'My Session' \\\n  --loan-application-id 36a22460-ebc8-4ffe-a213-1683c5a420c5",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/loan-applications/$LOAN_APPLICATION_ID:generate-offer \\\n    -X POST \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'acceptOffer',
    endpoint: '/api/v1/loan-applications/{loanApplicationId}:accept-offer',
    httpMethod: 'post',
    summary: 'Accept Loan Offer',
    description: 'Accept offer.',
    stainlessPath: '(resource) loan-applications > (method) acceptOffer',
    qualified: 'client.loanApplications.acceptOffer',
    params: ['loanApplicationId: string;', 'X-Request-ID?: string;'],
    response: '{ links?: { href?: string; rel?: string; }[]; }',
    markdown:
      "## acceptOffer\n\n`client.loanApplications.acceptOffer(loanApplicationId: string, X-Request-ID?: string): { links?: object[]; }`\n\n**post** `/api/v1/loan-applications/{loanApplicationId}:accept-offer`\n\nAccept offer.\n\n### Parameters\n\n- `loanApplicationId: string`\n\n- `X-Request-ID?: string`\n\n### Returns\n\n- `{ links?: { href?: string; rel?: string; }[]; }`\n\n  - `links?: { href?: string; rel?: string; }[]`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.loanApplications.acceptOffer('36a22460-ebc8-4ffe-a213-1683c5a420c5');\n\nconsole.log(response);\n```",
    perLanguage: {
      typescript: {
        method: 'client.loanApplications.acceptOffer',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nconst response = await client.loanApplications.acceptOffer('36a22460-ebc8-4ffe-a213-1683c5a420c5');\n\nconsole.log(response.links);",
      },
      python: {
        method: 'loan_applications.accept_offer',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nresponse = client.loan_applications.accept_offer(\n    loan_application_id="36a22460-ebc8-4ffe-a213-1683c5a420c5",\n)\nprint(response.links)',
      },
      java: {
        method: 'loanApplications().acceptOffer',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.loanapplications.LoanApplicationAcceptOfferParams;\nimport com.plumery.api.models.loanapplications.LoanApplicationAcceptOfferResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        LoanApplicationAcceptOfferResponse response = client.loanApplications().acceptOffer("36a22460-ebc8-4ffe-a213-1683c5a420c5");\n    }\n}',
      },
      kotlin: {
        method: 'loanApplications().acceptOffer',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.loanapplications.LoanApplicationAcceptOfferParams\nimport com.plumery.api.models.loanapplications.LoanApplicationAcceptOfferResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val response: LoanApplicationAcceptOfferResponse = client.loanApplications().acceptOffer("36a22460-ebc8-4ffe-a213-1683c5a420c5")\n}',
      },
      go: {
        method: 'client.LoanApplications.AcceptOffer',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tresponse, err := client.LoanApplications.AcceptOffer(\n\t\tcontext.TODO(),\n\t\t"36a22460-ebc8-4ffe-a213-1683c5a420c5",\n\t\tplumery.LoanApplicationAcceptOfferParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.Links)\n}\n',
      },
      cli: {
        method: 'loan-applications acceptOffer',
        example:
          "plumery loan-applications accept-offer \\\n  --session 'My Session' \\\n  --loan-application-id 36a22460-ebc8-4ffe-a213-1683c5a420c5",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/loan-applications/$LOAN_APPLICATION_ID:accept-offer \\\n    -X POST \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'setBankAccountDetails',
    endpoint: '/api/v1/loan-applications/{loanApplicationId}:set-bank-account-details',
    httpMethod: 'post',
    summary: 'Collect Bank Account Details',
    description: 'Collects bank account details for a loan application.',
    stainlessPath: '(resource) loan-applications > (method) setBankAccountDetails',
    qualified: 'client.loanApplications.setBankAccountDetails',
    params: [
      'loanApplicationId: string;',
      'accountNumber: string;',
      'bankNumber: string;',
      'accountName?: string;',
      'accountType?: string;',
      'bankName?: string;',
      'X-Request-ID?: string;',
    ],
    markdown:
      "## setBankAccountDetails\n\n`client.loanApplications.setBankAccountDetails(loanApplicationId: string, accountNumber: string, bankNumber: string, accountName?: string, accountType?: string, bankName?: string, X-Request-ID?: string): void`\n\n**post** `/api/v1/loan-applications/{loanApplicationId}:set-bank-account-details`\n\nCollects bank account details for a loan application.\n\n### Parameters\n\n- `loanApplicationId: string`\n\n- `accountNumber: string`\n\n- `bankNumber: string`\n\n- `accountName?: string`\n\n- `accountType?: string`\n\n- `bankName?: string`\n\n- `X-Request-ID?: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nawait client.loanApplications.setBankAccountDetails('36a22460-ebc8-4ffe-a213-1683c5a420c5', { accountNumber: '123456789012345678', bankNumber: '123' })\n```",
    perLanguage: {
      typescript: {
        method: 'client.loanApplications.setBankAccountDetails',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nawait client.loanApplications.setBankAccountDetails('36a22460-ebc8-4ffe-a213-1683c5a420c5', {\n  accountNumber: '123456789012345678',\n  bankNumber: '123',\n});",
      },
      python: {
        method: 'loan_applications.set_bank_account_details',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nclient.loan_applications.set_bank_account_details(\n    loan_application_id="36a22460-ebc8-4ffe-a213-1683c5a420c5",\n    account_number="123456789012345678",\n    bank_number="123",\n)',
      },
      java: {
        method: 'loanApplications().setBankAccountDetails',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.loanapplications.LoanApplicationSetBankAccountDetailsParams;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        LoanApplicationSetBankAccountDetailsParams params = LoanApplicationSetBankAccountDetailsParams.builder()\n            .loanApplicationId("36a22460-ebc8-4ffe-a213-1683c5a420c5")\n            .accountNumber("123456789012345678")\n            .bankNumber("123")\n            .build();\n        client.loanApplications().setBankAccountDetails(params);\n    }\n}',
      },
      kotlin: {
        method: 'loanApplications().setBankAccountDetails',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.loanapplications.LoanApplicationSetBankAccountDetailsParams\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: LoanApplicationSetBankAccountDetailsParams = LoanApplicationSetBankAccountDetailsParams.builder()\n        .loanApplicationId("36a22460-ebc8-4ffe-a213-1683c5a420c5")\n        .accountNumber("123456789012345678")\n        .bankNumber("123")\n        .build()\n    client.loanApplications().setBankAccountDetails(params)\n}',
      },
      go: {
        method: 'client.LoanApplications.SetBankAccountDetails',
        example:
          'package main\n\nimport (\n\t"context"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\terr := client.LoanApplications.SetBankAccountDetails(\n\t\tcontext.TODO(),\n\t\t"36a22460-ebc8-4ffe-a213-1683c5a420c5",\n\t\tplumery.LoanApplicationSetBankAccountDetailsParams{\n\t\t\tAccountNumber: plumery.F("123456789012345678"),\n\t\t\tBankNumber:    plumery.F("123"),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
      },
      cli: {
        method: 'loan-applications setBankAccountDetails',
        example:
          "plumery loan-applications set-bank-account-details \\\n  --session 'My Session' \\\n  --loan-application-id 36a22460-ebc8-4ffe-a213-1683c5a420c5 \\\n  --account-number 123456789012345678 \\\n  --bank-number 123",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/loan-applications/$LOAN_APPLICATION_ID:set-bank-account-details \\\n    -H \'Content-Type: application/json\' \\\n    -H "Cookie: $SESSION" \\\n    -d \'{\n          "accountNumber": "123456789012345678",\n          "bankNumber": "123",\n          "accountName": "Account Name",\n          "accountType": "Checking",\n          "bankName": "Bank Name"\n        }\'',
      },
    },
  },
  {
    name: 'uploadDocument',
    endpoint: '/api/v1/loan-applications/{loanApplicationId}:upload-document',
    httpMethod: 'post',
    summary: 'Upload Document',
    description: 'Upload a document for a loan application.',
    stainlessPath: '(resource) loan-applications > (method) uploadDocument',
    qualified: 'client.loanApplications.uploadDocument',
    params: [
      'loanApplicationId: string;',
      "documentType: 'INCOME_PROOF' | 'BUSINESS_LICENSE' | 'FINANCIAL_STATEMENTS';",
      'file: string;',
      'filename: string;',
      'X-Request-ID?: string;',
    ],
    markdown:
      "## uploadDocument\n\n`client.loanApplications.uploadDocument(loanApplicationId: string, documentType: 'INCOME_PROOF' | 'BUSINESS_LICENSE' | 'FINANCIAL_STATEMENTS', file: string, filename: string, X-Request-ID?: string): void`\n\n**post** `/api/v1/loan-applications/{loanApplicationId}:upload-document`\n\nUpload a document for a loan application.\n\n### Parameters\n\n- `loanApplicationId: string`\n\n- `documentType: 'INCOME_PROOF' | 'BUSINESS_LICENSE' | 'FINANCIAL_STATEMENTS'`\n\n- `file: string`\n\n- `filename: string`\n\n- `X-Request-ID?: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nawait client.loanApplications.uploadDocument('36a22460-ebc8-4ffe-a213-1683c5a420c5', {\n  documentType: 'INCOME_PROOF',\n  file: fs.createReadStream('path/to/file'),\n  filename: 'filename',\n})\n```",
    perLanguage: {
      typescript: {
        method: 'client.loanApplications.uploadDocument',
        example:
          "import fs from 'fs';\nimport Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nawait client.loanApplications.uploadDocument('36a22460-ebc8-4ffe-a213-1683c5a420c5', {\n  documentType: 'INCOME_PROOF',\n  file: fs.createReadStream('path/to/file'),\n  filename: 'filename',\n});",
      },
      python: {
        method: 'loan_applications.upload_document',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nclient.loan_applications.upload_document(\n    loan_application_id="36a22460-ebc8-4ffe-a213-1683c5a420c5",\n    document_type="INCOME_PROOF",\n    file=b"Example data",\n    filename="filename",\n)',
      },
      java: {
        method: 'loanApplications().uploadDocument',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.loanapplications.LoanApplicationUploadDocumentParams;\nimport java.io.ByteArrayInputStream;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        LoanApplicationUploadDocumentParams params = LoanApplicationUploadDocumentParams.builder()\n            .loanApplicationId("36a22460-ebc8-4ffe-a213-1683c5a420c5")\n            .documentType(LoanApplicationUploadDocumentParams.DocumentType.INCOME_PROOF)\n            .file(new ByteArrayInputStream("Example data".getBytes()))\n            .filename("filename")\n            .build();\n        client.loanApplications().uploadDocument(params);\n    }\n}',
      },
      kotlin: {
        method: 'loanApplications().uploadDocument',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.loanapplications.LoanApplicationUploadDocumentParams\nimport java.io.ByteArrayInputStream\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: LoanApplicationUploadDocumentParams = LoanApplicationUploadDocumentParams.builder()\n        .loanApplicationId("36a22460-ebc8-4ffe-a213-1683c5a420c5")\n        .documentType(LoanApplicationUploadDocumentParams.DocumentType.INCOME_PROOF)\n        .file("Example data".byteInputStream())\n        .filename("filename")\n        .build()\n    client.loanApplications().uploadDocument(params)\n}',
      },
      go: {
        method: 'client.LoanApplications.UploadDocument',
        example:
          'package main\n\nimport (\n\t"bytes"\n\t"context"\n\t"io"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\terr := client.LoanApplications.UploadDocument(\n\t\tcontext.TODO(),\n\t\t"36a22460-ebc8-4ffe-a213-1683c5a420c5",\n\t\tplumery.LoanApplicationUploadDocumentParams{\n\t\t\tDocumentType: plumery.F(plumery.LoanApplicationUploadDocumentParamsDocumentTypeIncomeProof),\n\t\t\tFile:         plumery.F(io.Reader(bytes.NewBuffer([]byte("Example data")))),\n\t\t\tFilename:     plumery.F("filename"),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
      },
      cli: {
        method: 'loan-applications uploadDocument',
        example:
          "plumery loan-applications upload-document \\\n  --session 'My Session' \\\n  --loan-application-id 36a22460-ebc8-4ffe-a213-1683c5a420c5 \\\n  --document-type INCOME_PROOF \\\n  --file 'Example data' \\\n  --filename filename",
      },
      http: {
        example:
          "curl https://api.plumery.com/api/v1/loan-applications/$LOAN_APPLICATION_ID:upload-document \\\n    -H 'Content-Type: multipart/form-data' \\\n    -H \"Cookie: $SESSION\" \\\n    -F documentType=INCOME_PROOF \\\n    -F 'file=@/path/to/file' \\\n    -F filename=filename",
      },
    },
  },
  {
    name: 'list',
    endpoint: '/api/v1/parties/{partyId}/accounts',
    httpMethod: 'get',
    summary: 'List Accounts',
    description:
      "Allows retrieval of accounts associated with the current authorised user. It's possible to filter the accounts list by status or by cashAccountType.",
    stainlessPath: '(resource) parties.accounts > (method) list',
    qualified: 'client.parties.accounts.list',
    params: [
      'partyId: string;',
      'cashAccountType?: string[];',
      'iban?: string;',
      "status?: 'ENABLED' | 'DELETED' | 'BLOCKED'[];",
      'plmr-user-action?: boolean;',
    ],
    response:
      "{ accounts?: { accountId: string; currency: string; status: 'ENABLED' | 'DELETED' | 'BLOCKED'; additionalAttributes?: object; balances?: { balanceAmount: object; balanceType: 'closingBooked' | 'openingBooked' | 'interimAvailable' | 'interimBooked' | 'expected' | 'accrued'; creditLimitIncluded?: boolean; lastRetrievedDateTime?: string; }[]; bic?: string; cashAccountType?: string; creationDate?: string; details?: string; displayName?: string; identification?: { bban?: string; iban?: string; msisdn?: string; other?: object; }; interestRate?: number; name?: string; ownerName?: string; product?: string; productId?: string; usage?: 'INDIVIDUAL' | 'ORGANISATION'; }[]; }",
    markdown:
      "## list\n\n`client.parties.accounts.list(partyId: string, cashAccountType?: string[], iban?: string, status?: 'ENABLED' | 'DELETED' | 'BLOCKED'[], plmr-user-action?: boolean): { accounts?: object[]; }`\n\n**get** `/api/v1/parties/{partyId}/accounts`\n\nAllows retrieval of accounts associated with the current authorised user. It's possible to filter the accounts list by status or by cashAccountType.\n\n### Parameters\n\n- `partyId: string`\n\n- `cashAccountType?: string[]`\n  A filter on the list based on the cashAccountType field. The value must be a 4 characters string as defined in ISO 20022\n\n\n- `iban?: string`\n  A filter on the account iban\n\n\n- `status?: 'ENABLED' | 'DELETED' | 'BLOCKED'[]`\n  A filter on the list based on the account status field. Available values:  \n  * ENABLED - account is available\n  * DELETED - account is terminated\n  * BLOCKED - account is blocked e.g. for legal reasons\n\n\n- `plmr-user-action?: boolean`\n\n### Returns\n\n- `{ accounts?: { accountId: string; currency: string; status: 'ENABLED' | 'DELETED' | 'BLOCKED'; additionalAttributes?: object; balances?: { balanceAmount: object; balanceType: 'closingBooked' | 'openingBooked' | 'interimAvailable' | 'interimBooked' | 'expected' | 'accrued'; creditLimitIncluded?: boolean; lastRetrievedDateTime?: string; }[]; bic?: string; cashAccountType?: string; creationDate?: string; details?: string; displayName?: string; identification?: { bban?: string; iban?: string; msisdn?: string; other?: object; }; interestRate?: number; name?: string; ownerName?: string; product?: string; productId?: string; usage?: 'INDIVIDUAL' | 'ORGANISATION'; }[]; }`\n\n  - `accounts?: { accountId: string; currency: string; status: 'ENABLED' | 'DELETED' | 'BLOCKED'; additionalAttributes?: object; balances?: { balanceAmount: { amount: string; currency: string; }; balanceType: 'closingBooked' | 'openingBooked' | 'interimAvailable' | 'interimBooked' | 'expected' | 'accrued'; creditLimitIncluded?: boolean; lastRetrievedDateTime?: string; }[]; bic?: string; cashAccountType?: string; creationDate?: string; details?: string; displayName?: string; identification?: { bban?: string; iban?: string; msisdn?: string; other?: { identification?: string; issuer?: string; schemeNameCode?: string; schemeNameProprietary?: string; }; }; interestRate?: number; name?: string; ownerName?: string; product?: string; productId?: string; usage?: 'INDIVIDUAL' | 'ORGANISATION'; }[]`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst accounts = await client.parties.accounts.list('6878951b-256b-4baa-9e81-ad4c577adc4e');\n\nconsole.log(accounts);\n```",
    perLanguage: {
      typescript: {
        method: 'client.parties.accounts.list',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nconst accounts = await client.parties.accounts.list('6878951b-256b-4baa-9e81-ad4c577adc4e');\n\nconsole.log(accounts.accounts);",
      },
      python: {
        method: 'parties.accounts.list',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\naccounts = client.parties.accounts.list(\n    party_id="6878951b-256b-4baa-9e81-ad4c577adc4e",\n)\nprint(accounts.accounts)',
      },
      java: {
        method: 'parties().accounts().list',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.parties.accounts.AccountListParams;\nimport com.plumery.api.models.parties.accounts.AccountListResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        AccountListResponse accounts = client.parties().accounts().list("6878951b-256b-4baa-9e81-ad4c577adc4e");\n    }\n}',
      },
      kotlin: {
        method: 'parties().accounts().list',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.parties.accounts.AccountListParams\nimport com.plumery.api.models.parties.accounts.AccountListResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val accounts: AccountListResponse = client.parties().accounts().list("6878951b-256b-4baa-9e81-ad4c577adc4e")\n}',
      },
      go: {
        method: 'client.Parties.Accounts.List',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\taccounts, err := client.Parties.Accounts.List(\n\t\tcontext.TODO(),\n\t\t"6878951b-256b-4baa-9e81-ad4c577adc4e",\n\t\tplumery.PartyAccountListParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", accounts.Accounts)\n}\n',
      },
      cli: {
        method: 'accounts list',
        example:
          "plumery parties:accounts list \\\n  --session 'My Session' \\\n  --party-id 6878951b-256b-4baa-9e81-ad4c577adc4e",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/parties/$PARTY_ID/accounts \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'retrieve',
    endpoint: '/api/v1/parties/{partyId}/accounts/{accountId}',
    httpMethod: 'get',
    summary: 'Retrieve Account',
    description: 'Allows retrieval of a single account, fetched by its ID.\n',
    stainlessPath: '(resource) parties.accounts > (method) retrieve',
    qualified: 'client.parties.accounts.retrieve',
    params: ['partyId: string;', 'accountId: string;', 'plmr-user-action?: boolean;'],
    response:
      "{ account?: { accountId: string; currency: string; status: 'ENABLED' | 'DELETED' | 'BLOCKED'; additionalAttributes?: object; balances?: { balanceAmount: object; balanceType: 'closingBooked' | 'openingBooked' | 'interimAvailable' | 'interimBooked' | 'expected' | 'accrued'; creditLimitIncluded?: boolean; lastRetrievedDateTime?: string; }[]; bic?: string; cashAccountType?: string; creationDate?: string; details?: string; displayName?: string; identification?: { bban?: string; iban?: string; msisdn?: string; other?: object; }; interestRate?: number; name?: string; ownerName?: string; product?: string; productId?: string; usage?: 'INDIVIDUAL' | 'ORGANISATION'; }; }",
    markdown:
      "## retrieve\n\n`client.parties.accounts.retrieve(partyId: string, accountId: string, plmr-user-action?: boolean): { account?: object; }`\n\n**get** `/api/v1/parties/{partyId}/accounts/{accountId}`\n\nAllows retrieval of a single account, fetched by its ID.\n\n\n### Parameters\n\n- `partyId: string`\n\n- `accountId: string`\n\n- `plmr-user-action?: boolean`\n\n### Returns\n\n- `{ account?: { accountId: string; currency: string; status: 'ENABLED' | 'DELETED' | 'BLOCKED'; additionalAttributes?: object; balances?: { balanceAmount: object; balanceType: 'closingBooked' | 'openingBooked' | 'interimAvailable' | 'interimBooked' | 'expected' | 'accrued'; creditLimitIncluded?: boolean; lastRetrievedDateTime?: string; }[]; bic?: string; cashAccountType?: string; creationDate?: string; details?: string; displayName?: string; identification?: { bban?: string; iban?: string; msisdn?: string; other?: object; }; interestRate?: number; name?: string; ownerName?: string; product?: string; productId?: string; usage?: 'INDIVIDUAL' | 'ORGANISATION'; }; }`\n\n  - `account?: { accountId: string; currency: string; status: 'ENABLED' | 'DELETED' | 'BLOCKED'; additionalAttributes?: object; balances?: { balanceAmount: { amount: string; currency: string; }; balanceType: 'closingBooked' | 'openingBooked' | 'interimAvailable' | 'interimBooked' | 'expected' | 'accrued'; creditLimitIncluded?: boolean; lastRetrievedDateTime?: string; }[]; bic?: string; cashAccountType?: string; creationDate?: string; details?: string; displayName?: string; identification?: { bban?: string; iban?: string; msisdn?: string; other?: { identification?: string; issuer?: string; schemeNameCode?: string; schemeNameProprietary?: string; }; }; interestRate?: number; name?: string; ownerName?: string; product?: string; productId?: string; usage?: 'INDIVIDUAL' | 'ORGANISATION'; }`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst account = await client.parties.accounts.retrieve('3dc3d5b3-7023-4848-9853-f5400a64e80f', { partyId: '6878951b-256b-4baa-9e81-ad4c577adc4e' });\n\nconsole.log(account);\n```",
    perLanguage: {
      typescript: {
        method: 'client.parties.accounts.retrieve',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nconst account = await client.parties.accounts.retrieve('3dc3d5b3-7023-4848-9853-f5400a64e80f', {\n  partyId: '6878951b-256b-4baa-9e81-ad4c577adc4e',\n});\n\nconsole.log(account.account);",
      },
      python: {
        method: 'parties.accounts.retrieve',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\naccount = client.parties.accounts.retrieve(\n    account_id="3dc3d5b3-7023-4848-9853-f5400a64e80f",\n    party_id="6878951b-256b-4baa-9e81-ad4c577adc4e",\n)\nprint(account.account)',
      },
      java: {
        method: 'parties().accounts().retrieve',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.parties.accounts.AccountRetrieveParams;\nimport com.plumery.api.models.parties.accounts.AccountRetrieveResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        AccountRetrieveParams params = AccountRetrieveParams.builder()\n            .partyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n            .accountId("3dc3d5b3-7023-4848-9853-f5400a64e80f")\n            .build();\n        AccountRetrieveResponse account = client.parties().accounts().retrieve(params);\n    }\n}',
      },
      kotlin: {
        method: 'parties().accounts().retrieve',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.parties.accounts.AccountRetrieveParams\nimport com.plumery.api.models.parties.accounts.AccountRetrieveResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: AccountRetrieveParams = AccountRetrieveParams.builder()\n        .partyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n        .accountId("3dc3d5b3-7023-4848-9853-f5400a64e80f")\n        .build()\n    val account: AccountRetrieveResponse = client.parties().accounts().retrieve(params)\n}',
      },
      go: {
        method: 'client.Parties.Accounts.Get',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\taccount, err := client.Parties.Accounts.Get(\n\t\tcontext.TODO(),\n\t\t"6878951b-256b-4baa-9e81-ad4c577adc4e",\n\t\t"3dc3d5b3-7023-4848-9853-f5400a64e80f",\n\t\tplumery.PartyAccountGetParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", account.Account)\n}\n',
      },
      cli: {
        method: 'accounts retrieve',
        example:
          "plumery parties:accounts retrieve \\\n  --session 'My Session' \\\n  --party-id 6878951b-256b-4baa-9e81-ad4c577adc4e \\\n  --account-id 3dc3d5b3-7023-4848-9853-f5400a64e80f",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/parties/$PARTY_ID/accounts/$ACCOUNT_ID \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'updateName',
    endpoint: '/api/v1/parties/{partyId}/accounts/{accountId}:update-name',
    httpMethod: 'post',
    summary: 'Update account name',
    description: 'Update the account name.',
    stainlessPath: '(resource) parties.accounts > (method) updateName',
    qualified: 'client.parties.accounts.updateName',
    params: ['partyId: string;', 'accountId: string;', 'name: string;', 'plmr-user-action?: boolean;'],
    markdown:
      "## updateName\n\n`client.parties.accounts.updateName(partyId: string, accountId: string, name: string, plmr-user-action?: boolean): void`\n\n**post** `/api/v1/parties/{partyId}/accounts/{accountId}:update-name`\n\nUpdate the account name.\n\n### Parameters\n\n- `partyId: string`\n\n- `accountId: string`\n\n- `name: string`\n\n- `plmr-user-action?: boolean`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nawait client.parties.accounts.updateName('3dc3d5b3-7023-4848-9853-f5400a64e80f', { partyId: '6878951b-256b-4baa-9e81-ad4c577adc4e', name: 'name' })\n```",
    perLanguage: {
      typescript: {
        method: 'client.parties.accounts.updateName',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nawait client.parties.accounts.updateName('3dc3d5b3-7023-4848-9853-f5400a64e80f', {\n  partyId: '6878951b-256b-4baa-9e81-ad4c577adc4e',\n  name: 'name',\n});",
      },
      python: {
        method: 'parties.accounts.update_name',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nclient.parties.accounts.update_name(\n    account_id="3dc3d5b3-7023-4848-9853-f5400a64e80f",\n    party_id="6878951b-256b-4baa-9e81-ad4c577adc4e",\n    name="name",\n)',
      },
      java: {
        method: 'parties().accounts().updateName',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.parties.accounts.AccountUpdateNameParams;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        AccountUpdateNameParams params = AccountUpdateNameParams.builder()\n            .partyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n            .accountId("3dc3d5b3-7023-4848-9853-f5400a64e80f")\n            .name("name")\n            .build();\n        client.parties().accounts().updateName(params);\n    }\n}',
      },
      kotlin: {
        method: 'parties().accounts().updateName',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.parties.accounts.AccountUpdateNameParams\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: AccountUpdateNameParams = AccountUpdateNameParams.builder()\n        .partyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n        .accountId("3dc3d5b3-7023-4848-9853-f5400a64e80f")\n        .name("name")\n        .build()\n    client.parties().accounts().updateName(params)\n}',
      },
      go: {
        method: 'client.Parties.Accounts.UpdateName',
        example:
          'package main\n\nimport (\n\t"context"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\terr := client.Parties.Accounts.UpdateName(\n\t\tcontext.TODO(),\n\t\t"6878951b-256b-4baa-9e81-ad4c577adc4e",\n\t\t"3dc3d5b3-7023-4848-9853-f5400a64e80f",\n\t\tplumery.PartyAccountUpdateNameParams{\n\t\t\tName: plumery.F("name"),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
      },
      cli: {
        method: 'accounts updateName',
        example:
          "plumery parties:accounts update-name \\\n  --session 'My Session' \\\n  --party-id 6878951b-256b-4baa-9e81-ad4c577adc4e \\\n  --account-id 3dc3d5b3-7023-4848-9853-f5400a64e80f \\\n  --name name",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/parties/$PARTY_ID/accounts/$ACCOUNT_ID:update-name \\\n    -H \'Content-Type: application/json\' \\\n    -H "Cookie: $SESSION" \\\n    -d \'{\n          "name": "name"\n        }\'',
      },
    },
  },
  {
    name: 'create',
    endpoint: '/api/v1/parties/{partyId}/accounts',
    httpMethod: 'post',
    summary: 'Open account',
    description:
      'Opens a new account for the specified party in the given currency.\nYou must provide at least one of the following fields in the request body: `cashAccountType` or `overrideProductId`.\n\n- If `cashAccountType` or `overrideProductId` is provided, an account will be opened using the standard product associated with that type and currency, or the specified product ID, respectively.\n- If both are provided, `overrideProductId` takes precedence and will be used instead of `cashAccountType`.\n\n ',
    stainlessPath: '(resource) parties.accounts > (method) create',
    qualified: 'client.parties.accounts.create',
    params: [
      'partyId: string;',
      'currency: string;',
      'additionalAttributes?: object;',
      'cashAccountType?: string;',
      'generateNewIban?: boolean;',
      'iban?: string;',
      'name?: string;',
      'overrideProductId?: string;',
      'plmr-user-action?: boolean;',
      'x-request-id?: string;',
    ],
    markdown:
      "## create\n\n`client.parties.accounts.create(partyId: string, currency: string, additionalAttributes?: object, cashAccountType?: string, generateNewIban?: boolean, iban?: string, name?: string, overrideProductId?: string, plmr-user-action?: boolean, x-request-id?: string): void`\n\n**post** `/api/v1/parties/{partyId}/accounts`\n\nOpens a new account for the specified party in the given currency.\nYou must provide at least one of the following fields in the request body: `cashAccountType` or `overrideProductId`.\n\n- If `cashAccountType` or `overrideProductId` is provided, an account will be opened using the standard product associated with that type and currency, or the specified product ID, respectively.\n- If both are provided, `overrideProductId` takes precedence and will be used instead of `cashAccountType`.\n\n \n\n### Parameters\n\n- `partyId: string`\n\n- `currency: string`\n\n- `additionalAttributes?: object`\n  Free-form map of non-standard attributes for the account. Values are passed through events.\n\n\n- `cashAccountType?: string`\n  ExternalCashAccountType1Code from ISO 20022.\n\n- `generateNewIban?: boolean`\n\n- `iban?: string`\n\n- `name?: string`\n\n- `overrideProductId?: string`\n\n- `plmr-user-action?: boolean`\n\n- `x-request-id?: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nawait client.parties.accounts.create('6878951b-256b-4baa-9e81-ad4c577adc4e', { currency: 'EUR' })\n```",
    perLanguage: {
      typescript: {
        method: 'client.parties.accounts.create',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nawait client.parties.accounts.create('6878951b-256b-4baa-9e81-ad4c577adc4e', { currency: 'EUR' });",
      },
      python: {
        method: 'parties.accounts.create',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nclient.parties.accounts.create(\n    party_id="6878951b-256b-4baa-9e81-ad4c577adc4e",\n    currency="EUR",\n)',
      },
      java: {
        method: 'parties().accounts().create',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.parties.accounts.AccountCreateParams;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        AccountCreateParams params = AccountCreateParams.builder()\n            .partyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n            .currency("EUR")\n            .build();\n        client.parties().accounts().create(params);\n    }\n}',
      },
      kotlin: {
        method: 'parties().accounts().create',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.parties.accounts.AccountCreateParams\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: AccountCreateParams = AccountCreateParams.builder()\n        .partyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n        .currency("EUR")\n        .build()\n    client.parties().accounts().create(params)\n}',
      },
      go: {
        method: 'client.Parties.Accounts.New',
        example:
          'package main\n\nimport (\n\t"context"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\terr := client.Parties.Accounts.New(\n\t\tcontext.TODO(),\n\t\t"6878951b-256b-4baa-9e81-ad4c577adc4e",\n\t\tplumery.PartyAccountNewParams{\n\t\t\tCurrency: plumery.F("EUR"),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
      },
      cli: {
        method: 'accounts create',
        example:
          "plumery parties:accounts create \\\n  --session 'My Session' \\\n  --party-id 6878951b-256b-4baa-9e81-ad4c577adc4e \\\n  --currency EUR",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/parties/$PARTY_ID/accounts \\\n    -H \'Content-Type: application/json\' \\\n    -H "Cookie: $SESSION" \\\n    -d \'{\n          "currency": "EUR",\n          "generateNewIban": false,\n          "iban": "FR7612345987650123456789014",\n          "overrideProductId": "3a35d1e598ebbc6g5587ec2cdc0d0b91"\n        }\'',
      },
    },
  },
  {
    name: 'generateStatement',
    endpoint: '/api/v1/parties/{partyId}/accounts/{accountId}:generate-statement',
    httpMethod: 'post',
    summary: 'Generate Account Statement',
    description:
      'Initiate account statement generation, which will be generated async. Requires a template for the snapshot to be configured in advance.',
    stainlessPath: '(resource) parties.accounts > (method) generateStatement',
    qualified: 'client.parties.accounts.generateStatement',
    params: [
      'partyId: string;',
      'accountId: string;',
      'dateFrom: string;',
      'dateTo: string;',
      'amountFrom?: number;',
      'amountTo?: number;',
      'search?: string;',
      "transactionDirection?: 'INCOMING' | 'OUTGOING';",
      'validateBalances?: boolean;',
      'plmr-user-action?: boolean;',
      'X-Request-ID?: string;',
    ],
    markdown:
      "## generateStatement\n\n`client.parties.accounts.generateStatement(partyId: string, accountId: string, dateFrom: string, dateTo: string, amountFrom?: number, amountTo?: number, search?: string, transactionDirection?: 'INCOMING' | 'OUTGOING', validateBalances?: boolean, plmr-user-action?: boolean, X-Request-ID?: string): void`\n\n**post** `/api/v1/parties/{partyId}/accounts/{accountId}:generate-statement`\n\nInitiate account statement generation, which will be generated async. Requires a template for the snapshot to be configured in advance.\n\n### Parameters\n\n- `partyId: string`\n\n- `accountId: string`\n  The unique identifier of the account associated to the transaction. ID can be used to retrieve additional\nrelated information via Accounts APIs.\n\n\n- `dateFrom: string`\n  Starting date (inclusive of the date entered) of the transaction list based on the booking date.\n\n- `dateTo: string`\n  End date (inclusive of the date entered) of the transaction list based on the booking date, default is \"now\" if not given.\n\n\n- `amountFrom?: number`\n  Allows you to filter transactions based on the transaction amount. \nSet this parameter to the minimum transaction amount you want to include in the retrieved list, using only positive values as input. \nHowever, the filter will retrieve both positive and negative transactions within the range.\n\n\n- `amountTo?: number`\n  Allows you to filter transactions based on the transaction amount. \nSet this parameter to the maximum transaction amount you want to include in the retrieved list, using only positive values as input. \nHowever, the filter will retrieve both positive and negative transactions within the range.\n\n\n- `search?: string`\n  Free-text search within the transactions list.\n\n- `transactionDirection?: 'INCOMING' | 'OUTGOING'`\n  Specifies the direction of a transaction, allowing you to filter transactions based on their flow.\nUse it to distinguish between \"incoming\" transactions (money received) and \"outgoing\" transactions (money spent or sent):\n  * INCOMING - Select this value to retrieve transactions representing money received or credited to the account\n  * OUTGOING - Select this value to retrieve transactions representing money spent or debited from the account\n\n- `validateBalances?: boolean`\n  Enables validation of the balances of the account.\nIf set to true, the API will check that the balances of the account are consistent with the transactions in the statement.\nIf set to false, the API will not check the balances of the account.\nIf not present, the validation enablement is determined by a default value set in the environment configuration.\n\n\n- `plmr-user-action?: boolean`\n\n- `X-Request-ID?: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nawait client.parties.accounts.generateStatement('5f0d3de8-d521-11ed-afa1-0242ac120002', {\n  partyId: '6878951b-256b-4baa-9e81-ad4c577adc4e',\n  dateFrom: '2019-12-27',\n  dateTo: '2019-12-27',\n})\n```",
    perLanguage: {
      typescript: {
        method: 'client.parties.accounts.generateStatement',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nawait client.parties.accounts.generateStatement('5f0d3de8-d521-11ed-afa1-0242ac120002', {\n  partyId: '6878951b-256b-4baa-9e81-ad4c577adc4e',\n  dateFrom: '2019-12-27',\n  dateTo: '2019-12-27',\n});",
      },
      python: {
        method: 'parties.accounts.generate_statement',
        example:
          'from datetime import date\nfrom plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nclient.parties.accounts.generate_statement(\n    account_id="5f0d3de8-d521-11ed-afa1-0242ac120002",\n    party_id="6878951b-256b-4baa-9e81-ad4c577adc4e",\n    date_from=date.fromisoformat("2019-12-27"),\n    date_to=date.fromisoformat("2019-12-27"),\n)',
      },
      java: {
        method: 'parties().accounts().generateStatement',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.parties.accounts.AccountGenerateStatementParams;\nimport java.time.LocalDate;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        AccountGenerateStatementParams params = AccountGenerateStatementParams.builder()\n            .partyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n            .accountId("5f0d3de8-d521-11ed-afa1-0242ac120002")\n            .dateFrom(LocalDate.parse("2019-12-27"))\n            .dateTo(LocalDate.parse("2019-12-27"))\n            .build();\n        client.parties().accounts().generateStatement(params);\n    }\n}',
      },
      kotlin: {
        method: 'parties().accounts().generateStatement',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.parties.accounts.AccountGenerateStatementParams\nimport java.time.LocalDate\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: AccountGenerateStatementParams = AccountGenerateStatementParams.builder()\n        .partyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n        .accountId("5f0d3de8-d521-11ed-afa1-0242ac120002")\n        .dateFrom(LocalDate.parse("2019-12-27"))\n        .dateTo(LocalDate.parse("2019-12-27"))\n        .build()\n    client.parties().accounts().generateStatement(params)\n}',
      },
      go: {
        method: 'client.Parties.Accounts.GenerateStatement',
        example:
          'package main\n\nimport (\n\t"context"\n\t"time"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\terr := client.Parties.Accounts.GenerateStatement(\n\t\tcontext.TODO(),\n\t\t"6878951b-256b-4baa-9e81-ad4c577adc4e",\n\t\t"5f0d3de8-d521-11ed-afa1-0242ac120002",\n\t\tplumery.PartyAccountGenerateStatementParams{\n\t\t\tDateFrom: plumery.F(time.Now()),\n\t\t\tDateTo:   plumery.F(time.Now()),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
      },
      cli: {
        method: 'accounts generateStatement',
        example:
          "plumery parties:accounts generate-statement \\\n  --session 'My Session' \\\n  --party-id 6878951b-256b-4baa-9e81-ad4c577adc4e \\\n  --account-id 5f0d3de8-d521-11ed-afa1-0242ac120002 \\\n  --date-from \"'2019-12-27'\" \\\n  --date-to \"'2019-12-27'\"",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/parties/$PARTY_ID/accounts/$ACCOUNT_ID:generate-statement \\\n    -X POST \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'close',
    endpoint: '/api/v1/parties/{partyId}/accounts/{accountId}:close',
    httpMethod: 'post',
    summary: 'Close Account',
    description: 'Allows closure of a single account.',
    stainlessPath: '(resource) parties.accounts > (method) close',
    qualified: 'client.parties.accounts.close',
    params: [
      'partyId: string;',
      'accountId: string;',
      'idempotencyKey?: string;',
      'plmr-user-action?: boolean;',
    ],
    markdown:
      "## close\n\n`client.parties.accounts.close(partyId: string, accountId: string, idempotencyKey?: string, plmr-user-action?: boolean): void`\n\n**post** `/api/v1/parties/{partyId}/accounts/{accountId}:close`\n\nAllows closure of a single account.\n\n### Parameters\n\n- `partyId: string`\n\n- `accountId: string`\n\n- `idempotencyKey?: string`\n\n- `plmr-user-action?: boolean`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nawait client.parties.accounts.close('3dc3d5b3-7023-4848-9853-f5400a64e80f', { partyId: '6878951b-256b-4baa-9e81-ad4c577adc4e' })\n```",
    perLanguage: {
      typescript: {
        method: 'client.parties.accounts.close',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nawait client.parties.accounts.close('3dc3d5b3-7023-4848-9853-f5400a64e80f', {\n  partyId: '6878951b-256b-4baa-9e81-ad4c577adc4e',\n});",
      },
      python: {
        method: 'parties.accounts.close',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nclient.parties.accounts.close(\n    account_id="3dc3d5b3-7023-4848-9853-f5400a64e80f",\n    party_id="6878951b-256b-4baa-9e81-ad4c577adc4e",\n)',
      },
      java: {
        method: 'parties().accounts().close',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.parties.accounts.AccountCloseParams;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        AccountCloseParams params = AccountCloseParams.builder()\n            .partyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n            .accountId("3dc3d5b3-7023-4848-9853-f5400a64e80f")\n            .build();\n        client.parties().accounts().close(params);\n    }\n}',
      },
      kotlin: {
        method: 'parties().accounts().close',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.parties.accounts.AccountCloseParams\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: AccountCloseParams = AccountCloseParams.builder()\n        .partyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n        .accountId("3dc3d5b3-7023-4848-9853-f5400a64e80f")\n        .build()\n    client.parties().accounts().close(params)\n}',
      },
      go: {
        method: 'client.Parties.Accounts.Close',
        example:
          'package main\n\nimport (\n\t"context"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\terr := client.Parties.Accounts.Close(\n\t\tcontext.TODO(),\n\t\t"6878951b-256b-4baa-9e81-ad4c577adc4e",\n\t\t"3dc3d5b3-7023-4848-9853-f5400a64e80f",\n\t\tplumery.PartyAccountCloseParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
      },
      cli: {
        method: 'accounts close',
        example:
          "plumery parties:accounts close \\\n  --session 'My Session' \\\n  --party-id 6878951b-256b-4baa-9e81-ad4c577adc4e \\\n  --account-id 3dc3d5b3-7023-4848-9853-f5400a64e80f",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/parties/$PARTY_ID/accounts/$ACCOUNT_ID:close \\\n    -X POST \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'retrieve',
    endpoint: '/api/v1/parties/{partyId}/accounts/{accountId}/transaction-exports',
    httpMethod: 'get',
    summary: 'Download Transactions Exports',
    description: 'Export transactions for a selected account and time range',
    stainlessPath: '(resource) parties.accounts.transaction-exports > (method) retrieve',
    qualified: 'client.parties.accounts.transactionExports.retrieve',
    params: [
      'partyId: string;',
      'accountId: string;',
      'amountFrom?: number;',
      'amountTo?: number;',
      'dateFrom?: string;',
      'dateTo?: string;',
      'search?: string;',
      "sortBy?: 'DATE' | 'AMOUNT';",
      "sortDirection?: 'ASCENDING' | 'DESCENDING';",
      'timeZone?: string;',
      "transactionDirection?: 'INCOMING' | 'OUTGOING';",
      'plmr-user-action?: boolean;',
      'X-Request-ID?: string;',
    ],
    markdown:
      "## retrieve\n\n`client.parties.accounts.transactionExports.retrieve(partyId: string, accountId: string, amountFrom?: number, amountTo?: number, dateFrom?: string, dateTo?: string, search?: string, sortBy?: 'DATE' | 'AMOUNT', sortDirection?: 'ASCENDING' | 'DESCENDING', timeZone?: string, transactionDirection?: 'INCOMING' | 'OUTGOING', plmr-user-action?: boolean, X-Request-ID?: string): void`\n\n**get** `/api/v1/parties/{partyId}/accounts/{accountId}/transaction-exports`\n\nExport transactions for a selected account and time range\n\n### Parameters\n\n- `partyId: string`\n\n- `accountId: string`\n  The unique identifier of the account associated to the transaction. ID can be used to retrieve additional\nrelated information via Accounts APIs.\n\n\n- `amountFrom?: number`\n  Allows you to filter transactions based on the transaction amount. \nSet this parameter to the minimum transaction amount you want to include in the retrieved list, using only positive values as input. \nHowever, the filter will retrieve both positive and negative transactions within the range.\n\n\n- `amountTo?: number`\n  Allows you to filter transactions based on the transaction amount. \nSet this parameter to the maximum transaction amount you want to include in the retrieved list, using only positive values as input. \nHowever, the filter will retrieve both positive and negative transactions within the range.\n\n\n- `dateFrom?: string`\n  Starting date (inclusive of the date entered) of the transaction list based on the booking date.\n\n- `dateTo?: string`\n  End date (inclusive of the date entered) of the transaction list based on the booking date, default is \"now\" if not given.\n\n\n- `search?: string`\n  Free-text search within the transactions list.\n\n- `sortBy?: 'DATE' | 'AMOUNT'`\n  Specifies the sorting field that determines the order of the results.\nDefaults to DATE. Transactions are ordered by bookingDate, falling back to valueDate when bookingDate\nis unavailable, and further to createdDate when neither is available. When multiple transactions\nshare the same bookingDate, they are further sorted by valueDate, then by createdDate.\n\n- `sortDirection?: 'ASCENDING' | 'DESCENDING'`\n  Specifies the direction of the sorting field.\nBy default DESCENDING is used.\n\n- `timeZone?: string`\n  IANA time zone used to resolve dateFrom and dateTo to whole calendar days. Required when dateFrom or dateTo is provided.\n\n\n- `transactionDirection?: 'INCOMING' | 'OUTGOING'`\n  Specifies the direction of a transaction, allowing you to filter transactions based on their flow.\nUse it to distinguish between \"incoming\" transactions (money received) and \"outgoing\" transactions (money spent or sent):\n  * INCOMING - Select this value to retrieve transactions representing money received or credited to the account\n  * OUTGOING - Select this value to retrieve transactions representing money spent or debited from the account\n\n- `plmr-user-action?: boolean`\n\n- `X-Request-ID?: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nawait client.parties.accounts.transactionExports.retrieve('5f0d3de8-d521-11ed-afa1-0242ac120002', { partyId: '6878951b-256b-4baa-9e81-ad4c577adc4e' })\n```",
    perLanguage: {
      typescript: {
        method: 'client.parties.accounts.transactionExports.retrieve',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nawait client.parties.accounts.transactionExports.retrieve('5f0d3de8-d521-11ed-afa1-0242ac120002', {\n  partyId: '6878951b-256b-4baa-9e81-ad4c577adc4e',\n});",
      },
      python: {
        method: 'parties.accounts.transaction_exports.retrieve',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nclient.parties.accounts.transaction_exports.retrieve(\n    account_id="5f0d3de8-d521-11ed-afa1-0242ac120002",\n    party_id="6878951b-256b-4baa-9e81-ad4c577adc4e",\n)',
      },
      java: {
        method: 'parties().accounts().transactionExports().retrieve',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.parties.accounts.transactionexports.TransactionExportRetrieveParams;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        TransactionExportRetrieveParams params = TransactionExportRetrieveParams.builder()\n            .partyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n            .accountId("5f0d3de8-d521-11ed-afa1-0242ac120002")\n            .build();\n        client.parties().accounts().transactionExports().retrieve(params);\n    }\n}',
      },
      kotlin: {
        method: 'parties().accounts().transactionExports().retrieve',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.parties.accounts.transactionexports.TransactionExportRetrieveParams\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: TransactionExportRetrieveParams = TransactionExportRetrieveParams.builder()\n        .partyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n        .accountId("5f0d3de8-d521-11ed-afa1-0242ac120002")\n        .build()\n    client.parties().accounts().transactionExports().retrieve(params)\n}',
      },
      go: {
        method: 'client.Parties.Accounts.TransactionExports.Get',
        example:
          'package main\n\nimport (\n\t"context"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\terr := client.Parties.Accounts.TransactionExports.Get(\n\t\tcontext.TODO(),\n\t\t"6878951b-256b-4baa-9e81-ad4c577adc4e",\n\t\t"5f0d3de8-d521-11ed-afa1-0242ac120002",\n\t\tplumery.PartyAccountTransactionExportGetParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
      },
      cli: {
        method: 'transaction-exports retrieve',
        example:
          "plumery parties:accounts:transaction-exports retrieve \\\n  --session 'My Session' \\\n  --party-id 6878951b-256b-4baa-9e81-ad4c577adc4e \\\n  --account-id 5f0d3de8-d521-11ed-afa1-0242ac120002",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/parties/$PARTY_ID/accounts/$ACCOUNT_ID/transaction-exports \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'retrieve',
    endpoint: '/api/v1/parties/{partyId}/accounts/{accountId}/end-of-day-balances/{balanceDate}',
    httpMethod: 'get',
    summary: 'Retrieve Account End Of Day Balance',
    description:
      'Returns end-of-day balance for the requested date.\nIf not found for the requested date, computes the record using the closing balance of the most recent end-of-day balance\nwith balanceDate smaller than the requested date for the same account, party and user.\nIf no end-of-day balance exists, returns zero balances.\n',
    stainlessPath: '(resource) parties.accounts.end-of-day-balances > (method) retrieve',
    qualified: 'client.parties.accounts.endOfDayBalances.retrieve',
    params: ['partyId: string;', 'accountId: string;', 'balanceDate: string;', 'plmr-user-action?: boolean;'],
    response:
      '{ accountId: string; balanceDate: string; closingBalance: number; openingBalance: number; currency?: string; }',
    markdown:
      "## retrieve\n\n`client.parties.accounts.endOfDayBalances.retrieve(partyId: string, accountId: string, balanceDate: string, plmr-user-action?: boolean): { accountId: string; balanceDate: string; closingBalance: number; openingBalance: number; currency?: string; }`\n\n**get** `/api/v1/parties/{partyId}/accounts/{accountId}/end-of-day-balances/{balanceDate}`\n\nReturns end-of-day balance for the requested date.\nIf not found for the requested date, computes the record using the closing balance of the most recent end-of-day balance\nwith balanceDate smaller than the requested date for the same account, party and user.\nIf no end-of-day balance exists, returns zero balances.\n\n\n### Parameters\n\n- `partyId: string`\n\n- `accountId: string`\n\n- `balanceDate: string`\n\n- `plmr-user-action?: boolean`\n\n### Returns\n\n- `{ accountId: string; balanceDate: string; closingBalance: number; openingBalance: number; currency?: string; }`\n\n  - `accountId: string`\n  - `balanceDate: string`\n  - `closingBalance: number`\n  - `openingBalance: number`\n  - `currency?: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst endOfDayBalance = await client.parties.accounts.endOfDayBalances.retrieve('2022-03-10', { partyId: '6878951b-256b-4baa-9e81-ad4c577adc4e', accountId: '3dc3d5b3-7023-4848-9853-f5400a64e80f' });\n\nconsole.log(endOfDayBalance);\n```",
    perLanguage: {
      typescript: {
        method: 'client.parties.accounts.endOfDayBalances.retrieve',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nconst endOfDayBalance = await client.parties.accounts.endOfDayBalances.retrieve('2022-03-10', {\n  partyId: '6878951b-256b-4baa-9e81-ad4c577adc4e',\n  accountId: '3dc3d5b3-7023-4848-9853-f5400a64e80f',\n});\n\nconsole.log(endOfDayBalance.accountId);",
      },
      python: {
        method: 'parties.accounts.end_of_day_balances.retrieve',
        example:
          'from datetime import date\nfrom plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nend_of_day_balance = client.parties.accounts.end_of_day_balances.retrieve(\n    balance_date=date.fromisoformat("2022-03-10"),\n    party_id="6878951b-256b-4baa-9e81-ad4c577adc4e",\n    account_id="3dc3d5b3-7023-4848-9853-f5400a64e80f",\n)\nprint(end_of_day_balance.account_id)',
      },
      java: {
        method: 'parties().accounts().endOfDayBalances().retrieve',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.parties.accounts.endofdaybalances.EndOfDayBalanceRetrieveParams;\nimport com.plumery.api.models.parties.accounts.endofdaybalances.EndOfDayBalanceRetrieveResponse;\nimport java.time.LocalDate;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        EndOfDayBalanceRetrieveParams params = EndOfDayBalanceRetrieveParams.builder()\n            .partyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n            .accountId("3dc3d5b3-7023-4848-9853-f5400a64e80f")\n            .balanceDate(LocalDate.parse("2022-03-10"))\n            .build();\n        EndOfDayBalanceRetrieveResponse endOfDayBalance = client.parties().accounts().endOfDayBalances().retrieve(params);\n    }\n}',
      },
      kotlin: {
        method: 'parties().accounts().endOfDayBalances().retrieve',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.parties.accounts.endofdaybalances.EndOfDayBalanceRetrieveParams\nimport com.plumery.api.models.parties.accounts.endofdaybalances.EndOfDayBalanceRetrieveResponse\nimport java.time.LocalDate\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: EndOfDayBalanceRetrieveParams = EndOfDayBalanceRetrieveParams.builder()\n        .partyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n        .accountId("3dc3d5b3-7023-4848-9853-f5400a64e80f")\n        .balanceDate(LocalDate.parse("2022-03-10"))\n        .build()\n    val endOfDayBalance: EndOfDayBalanceRetrieveResponse = client.parties().accounts().endOfDayBalances().retrieve(params)\n}',
      },
      go: {
        method: 'client.Parties.Accounts.EndOfDayBalances.Get',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\t"time"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tendOfDayBalance, err := client.Parties.Accounts.EndOfDayBalances.Get(\n\t\tcontext.TODO(),\n\t\t"6878951b-256b-4baa-9e81-ad4c577adc4e",\n\t\t"3dc3d5b3-7023-4848-9853-f5400a64e80f",\n\t\ttime.Now(),\n\t\tplumery.PartyAccountEndOfDayBalanceGetParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", endOfDayBalance.AccountID)\n}\n',
      },
      cli: {
        method: 'end-of-day-balances retrieve',
        example:
          "plumery parties:accounts:end-of-day-balances retrieve \\\n  --session 'My Session' \\\n  --party-id 6878951b-256b-4baa-9e81-ad4c577adc4e \\\n  --account-id 3dc3d5b3-7023-4848-9853-f5400a64e80f \\\n  --balance-date \"'2022-03-10'\"",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/parties/$PARTY_ID/accounts/$ACCOUNT_ID/end-of-day-balances/$BALANCE_DATE \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'create',
    endpoint: '/api/v1/parties/{partyId}/accounts/{accountId}/bulk-payments',
    httpMethod: 'post',
    summary: 'Initiate Bulk Payments',
    description: 'Initiate bulk payments via uploaded CSV data.\n',
    stainlessPath: '(resource) parties.accounts.bulk-payments > (method) create',
    qualified: 'client.parties.accounts.bulkPayments.create',
    params: [
      'partyId: string;',
      'accountId: string;',
      'body: string;',
      'Content-Disposition?: string;',
      'plmr-mfa-challenge-id?: string;',
      'plmr-mfa-signature?: string;',
      'plmr-user-action?: boolean;',
      'X-Device-Integrity-Token?: string;',
      'X-Request-ID?: string;',
    ],
    response:
      "{ bulkPaymentsRequestId: string; payments: { paymentStatus: 'ACCC' | 'RCVD' | 'RJCT'; sequenceNumber: string; paymentId?: string; rejectReason?: string; }[]; }",
    markdown:
      "## create\n\n`client.parties.accounts.bulkPayments.create(partyId: string, accountId: string, body: string, Content-Disposition?: string, plmr-mfa-challenge-id?: string, plmr-mfa-signature?: string, plmr-user-action?: boolean, X-Device-Integrity-Token?: string, X-Request-ID?: string): { bulkPaymentsRequestId: string; payments: object[]; }`\n\n**post** `/api/v1/parties/{partyId}/accounts/{accountId}/bulk-payments`\n\nInitiate bulk payments via uploaded CSV data.\n\n\n### Parameters\n\n- `partyId: string`\n\n- `accountId: string`\n\n- `body: string`\n  ### Raw CSV file content. \nEither **IBAN** or **Account number** must be provided.\n  | Column | Required | Description |\n  |----------|----------|-------------|\n  | **Recipient name** | Yes | Recipient name (max 70 chars) |\n  | **IBAN** | Conditional | Required if **Account number** is not provided |\n  | **Account number** | Conditional | Required if **IBAN** is not provided |\n  | **Bank identifier** | Conditional | Required when **IBAN** is not provided |\n  | **Amount** | Yes | Format: `123.45` |\n  | **Currency** | Yes | ISO 4217 Alpha-3 (e.g. `EUR`) |\n  | **Payment reference** | No | Max 140 chars |\n  | **Recipient country** | Yes | ISO 3166 Alpha-2 (e.g. `LT`) |\n  | **State or province** | No | Recipient state/province |\n  | **City** | No | Recipient city |\n  | **Postal code** | No | Recipient postal code |\n  | **Street** | No | Recipient street |\n  | **Building number** | No | Recipient building number |\n  | **Payment Type** | No | `SEPA`, `SEPA_INSTANT`, `SWIFT` |\n  | **Cash Account Type** | No | Recipient account cash account type |\n\n\n- `Content-Disposition?: string`\n\n- `plmr-mfa-challenge-id?: string`\n\n- `plmr-mfa-signature?: string`\n\n- `plmr-user-action?: boolean`\n\n- `X-Device-Integrity-Token?: string`\n\n- `X-Request-ID?: string`\n\n### Returns\n\n- `{ bulkPaymentsRequestId: string; payments: { paymentStatus: 'ACCC' | 'RCVD' | 'RJCT'; sequenceNumber: string; paymentId?: string; rejectReason?: string; }[]; }`\n  Body of the response for a successful bulk payments initiation request.\n\n  - `bulkPaymentsRequestId: string`\n  - `payments: { paymentStatus: 'ACCC' | 'RCVD' | 'RJCT'; sequenceNumber: string; paymentId?: string; rejectReason?: string; }[]`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst bulkPayment = await client.parties.accounts.bulkPayments.create('6878951b-256b-4baa-9e81-ad4c577adc4e', { partyId: '6878951b-256b-4baa-9e81-ad4c577adc4e', body: 'Recipient name,IBAN,Account number,Bank identifier,Amount,Currency,Payment reference,Recipient country,State or province,City,Postal code,Street,Building number,Payment Type,Cash Account Type\\nJohn Doe,AA121000011101001000,,,,100.50,EUR,Invoice 123,LT,Vilnius,Vilnius,01100,Gedimino pr.,10,SEPA,CACC\\n' });\n\nconsole.log(bulkPayment);\n```",
    perLanguage: {
      typescript: {
        method: 'client.parties.accounts.bulkPayments.create',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nconst bulkPayment = await client.parties.accounts.bulkPayments.create(\n  '6878951b-256b-4baa-9e81-ad4c577adc4e',\n  {\n    partyId: '6878951b-256b-4baa-9e81-ad4c577adc4e',\n    body: 'Recipient name,IBAN,Account number,Bank identifier,Amount,Currency,Payment reference,Recipient country,State or province,City,Postal code,Street,Building number,Payment Type,Cash Account Type\\nJohn Doe,AA121000011101001000,,,,100.50,EUR,Invoice 123,LT,Vilnius,Vilnius,01100,Gedimino pr.,10,SEPA,CACC\\n',\n  },\n);\n\nconsole.log(bulkPayment.bulkPaymentsRequestId);",
      },
      python: {
        method: 'parties.accounts.bulk_payments.create',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nbulk_payment = client.parties.accounts.bulk_payments.create(\n    account_id="6878951b-256b-4baa-9e81-ad4c577adc4e",\n    party_id="6878951b-256b-4baa-9e81-ad4c577adc4e",\n    body="Recipient name,IBAN,Account number,Bank identifier,Amount,Currency,Payment reference,Recipient country,State or province,City,Postal code,Street,Building number,Payment Type,Cash Account Type\\nJohn Doe,AA121000011101001000,,,,100.50,EUR,Invoice 123,LT,Vilnius,Vilnius,01100,Gedimino pr.,10,SEPA,CACC\\n",\n)\nprint(bulk_payment.bulk_payments_request_id)',
      },
      java: {
        method: 'parties().accounts().bulkPayments().create',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.parties.accounts.bulkpayments.BulkPaymentCreateParams;\nimport com.plumery.api.models.parties.accounts.bulkpayments.BulkPaymentCreateResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        BulkPaymentCreateParams params = BulkPaymentCreateParams.builder()\n            .partyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n            .accountId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n            .body("Recipient name,IBAN,Account number,Bank identifier,Amount,Currency,Payment reference,Recipient country,State or province,City,Postal code,Street,Building number,Payment Type,Cash Account Type\\nJohn Doe,AA121000011101001000,,,,100.50,EUR,Invoice 123,LT,Vilnius,Vilnius,01100,Gedimino pr.,10,SEPA,CACC\\n")\n            .build();\n        BulkPaymentCreateResponse bulkPayment = client.parties().accounts().bulkPayments().create(params);\n    }\n}',
      },
      kotlin: {
        method: 'parties().accounts().bulkPayments().create',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.parties.accounts.bulkpayments.BulkPaymentCreateParams\nimport com.plumery.api.models.parties.accounts.bulkpayments.BulkPaymentCreateResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: BulkPaymentCreateParams = BulkPaymentCreateParams.builder()\n        .partyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n        .accountId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n        .body("Recipient name,IBAN,Account number,Bank identifier,Amount,Currency,Payment reference,Recipient country,State or province,City,Postal code,Street,Building number,Payment Type,Cash Account Type\\nJohn Doe,AA121000011101001000,,,,100.50,EUR,Invoice 123,LT,Vilnius,Vilnius,01100,Gedimino pr.,10,SEPA,CACC\\n")\n        .build()\n    val bulkPayment: BulkPaymentCreateResponse = client.parties().accounts().bulkPayments().create(params)\n}',
      },
      go: {
        method: 'client.Parties.Accounts.BulkPayments.New',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tbulkPayment, err := client.Parties.Accounts.BulkPayments.New(\n\t\tcontext.TODO(),\n\t\t"6878951b-256b-4baa-9e81-ad4c577adc4e",\n\t\t"6878951b-256b-4baa-9e81-ad4c577adc4e",\n\t\tplumery.PartyAccountBulkPaymentNewParams{\n\t\t\tBody: "Recipient name,IBAN,Account number,Bank identifier,Amount,Currency,Payment reference,Recipient country,State or province,City,Postal code,Street,Building number,Payment Type,Cash Account Type\\nJohn Doe,AA121000011101001000,,,,100.50,EUR,Invoice 123,LT,Vilnius,Vilnius,01100,Gedimino pr.,10,SEPA,CACC\\n",\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", bulkPayment.BulkPaymentsRequestID)\n}\n',
      },
      cli: {
        method: 'bulk-payments create',
        example:
          "plumery parties:accounts:bulk-payments create \\\n  --session 'My Session' \\\n  --party-id 6878951b-256b-4baa-9e81-ad4c577adc4e \\\n  --account-id 6878951b-256b-4baa-9e81-ad4c577adc4e \\\n  --body 'Recipient name,IBAN,Account number,Bank identifier,Amount,Currency,Payment reference,Recipient country,State or province,City,Postal code,Street,Building number,Payment Type,Cash Account Type\nJohn Doe,AA121000011101001000,,,,100.50,EUR,Invoice 123,LT,Vilnius,Vilnius,01100,Gedimino pr.,10,SEPA,CACC\n'",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/parties/$PARTY_ID/accounts/$ACCOUNT_ID/bulk-payments \\\n    -H \'Content-Type: text/csv\' \\\n    -H "Cookie: $SESSION" \\\n    -d \'"Recipient name,IBAN,Account number,Bank identifier,Amount,Currency,Payment reference,Recipient country,State or province,City,Postal code,Street,Building number,Payment Type,Cash Account Type\\\\nJohn Doe,AA121000011101001000,,,,100.50,EUR,Invoice 123,LT,Vilnius,Vilnius,01100,Gedimino pr.,10,SEPA,CACC\\\\n"\'',
      },
    },
  },
  {
    name: 'list',
    endpoint: '/api/v1/parties/{partyId}/transactions',
    httpMethod: 'get',
    summary: 'List transactions',
    description:
      "Allows retrieval of transactions. It's possible to filter the transactions list by various criteria.",
    stainlessPath: '(resource) parties.transactions > (method) list',
    qualified: 'client.parties.transactions.list',
    params: [
      'partyId: string;',
      'accounts?: string[];',
      'amountFrom?: number;',
      'amountTo?: number;',
      'cards?: string[];',
      'cursor?: string;',
      'dateFrom?: string;',
      'dateTo?: string;',
      'limit?: number;',
      'search?: string;',
      "sortBy?: 'DATE' | 'AMOUNT';",
      "sortDirection?: 'ASCENDING' | 'DESCENDING';",
      "transactionDirection?: 'INCOMING' | 'OUTGOING';",
      "transactionStatuses?: 'PENDING' | 'BOOKED' | 'INFORMATION'[];",
      'plmr-user-action?: boolean;',
      'X-Request-ID?: string;',
    ],
    response: '{ items?: object | object[]; nextCursor?: string; }',
    markdown:
      "## list\n\n`client.parties.transactions.list(partyId: string, accounts?: string[], amountFrom?: number, amountTo?: number, cards?: string[], cursor?: string, dateFrom?: string, dateTo?: string, limit?: number, search?: string, sortBy?: 'DATE' | 'AMOUNT', sortDirection?: 'ASCENDING' | 'DESCENDING', transactionDirection?: 'INCOMING' | 'OUTGOING', transactionStatuses?: 'PENDING' | 'BOOKED' | 'INFORMATION'[], plmr-user-action?: boolean, X-Request-ID?: string): { items?: object | object[]; nextCursor?: string; }`\n\n**get** `/api/v1/parties/{partyId}/transactions`\n\nAllows retrieval of transactions. It's possible to filter the transactions list by various criteria.\n\n### Parameters\n\n- `partyId: string`\n\n- `accounts?: string[]`\n  Allows filtering transactions by list of Account IDs. Account ID is the \"accountId\" attribute of the account structure.\n\n\n- `amountFrom?: number`\n  Allows you to filter transactions based on the transaction amount. \nSet this parameter to the minimum transaction amount you want to include in the retrieved list, using only positive values as input. \nHowever, the filter will retrieve both positive and negative transactions within the range.\n\n\n- `amountTo?: number`\n  Allows you to filter transactions based on the transaction amount. \nSet this parameter to the maximum transaction amount you want to include in the retrieved list, using only positive values as input. \nHowever, the filter will retrieve both positive and negative transactions within the range.\n\n\n- `cards?: string[]`\n  Allows filtering transactions by list of Card IDs.\n\n\n- `cursor?: string`\n  The cursor is a pointer to the next page of transactions. \nIt is returned in the response body of the previous request. \nUse it to retrieve the next page of transactions.\n\n\n- `dateFrom?: string`\n  Starting date (inclusive of the date entered) of the transaction list based on the booking date.\n\n- `dateTo?: string`\n  End date (inclusive of the date entered) of the transaction list based on the booking date, default is \"now\" if not given.\n\n\n- `limit?: number`\n  Specifies the number of transactions to retrieve.\n\n\n- `search?: string`\n  Free-text search within the transactions list.\n\n- `sortBy?: 'DATE' | 'AMOUNT'`\n  Specifies the sorting field that determines the order of the results.\nDefaults to DATE. Transactions are ordered by bookingDate, falling back to valueDate when bookingDate\nis unavailable, and further to createdDate when neither is available. When multiple transactions\nshare the same bookingDate, they are further sorted by valueDate, then by createdDate.\n\n- `sortDirection?: 'ASCENDING' | 'DESCENDING'`\n  Specifies the direction of the sorting field.\nBy default DESCENDING is used.\n\n- `transactionDirection?: 'INCOMING' | 'OUTGOING'`\n  Specifies the direction of a transaction, allowing you to filter transactions based on their flow.\nUse it to distinguish between \"incoming\" transactions (money received) and \"outgoing\" transactions (money spent or sent):\n  * INCOMING - Select this value to retrieve transactions representing money received or credited to the account\n  * OUTGOING - Select this value to retrieve transactions representing money spent or debited from the account\n\n- `transactionStatuses?: 'PENDING' | 'BOOKED' | 'INFORMATION'[]`\n  Allows filtering transactions by list of transaction statuses.\n\n\n- `plmr-user-action?: boolean`\n\n- `X-Request-ID?: string`\n\n### Returns\n\n- `{ items?: { accountId: string; transactionAmount: { amount?: number; currency?: string; }; transactionId: string; transactionStatus: 'PENDING' | 'BOOKED' | 'INFORMATION'; additionalAttributes?: object; additionalCounterpartyData?: { address?: object; industryCategoryCode?: number; logo?: string; website?: string; }; additionalInformation?: { description?: string; }; balanceAfterTransaction?: { balanceAmount?: object; }; bankTransactionCode?: string; bookingDate?: string; bookingDateTime?: string; cardId?: string; createdDate?: string; createdDateTime?: string; debtorAccount?: { currency?: string; iban?: string; } | { currency?: string; other?: object; } | { currency?: string; }; debtorAgent?: string; debtorName?: string; debtorNameOriginal?: string; endToEndId?: string; exchangeDetails?: { exchangeRate?: number; fee?: number; }; fundsTransferId?: string; paymentOrderId?: string; remittanceInformationStructuredArray?: { reference?: string; referenceIssuer?: string; referenceType?: string; }; remittanceInformationUnstructured?: string; transactionCategory?: { icon?: string; name?: string; }; valueDate?: string; valueDateTime?: string; } | { accountId: string; transactionAmount: { amount?: number; currency?: string; }; transactionId: string; transactionStatus: 'PENDING' | 'BOOKED' | 'INFORMATION'; additionalAttributes?: object; additionalCounterpartyData?: { address?: object; industryCategoryCode?: number; logo?: string; website?: string; }; additionalInformation?: { description?: string; }; balanceAfterTransaction?: { balanceAmount?: object; }; bankTransactionCode?: string; bookingDate?: string; bookingDateTime?: string; cardId?: string; creditorAccount?: { currency?: string; iban?: string; } | { currency?: string; other?: object; } | { currency?: string; }; creditorAgent?: string; creditorName?: string; creditorNameOriginal?: string; endToEndId?: string; exchangeDetails?: { exchangeRate?: number; fee?: number; }; fundsTransferId?: string; paymentOrderId?: string; remittanceInformationStructuredArray?: { reference?: string; referenceIssuer?: string; referenceType?: string; }; remittanceInformationUnstructured?: string; transactionCategory?: { icon?: string; name?: string; }; valueDate?: string; valueDateTime?: string; }[]; nextCursor?: string; }`\n\n  - `items?: { accountId: string; transactionAmount: { amount?: number; currency?: string; }; transactionId: string; transactionStatus: 'PENDING' | 'BOOKED' | 'INFORMATION'; additionalAttributes?: object; additionalCounterpartyData?: { address?: { city?: string; country?: string; latitude?: number; longitude?: number; state?: string; street?: string; zip?: string; }; industryCategoryCode?: number; logo?: string; website?: string; }; additionalInformation?: { description?: string; }; balanceAfterTransaction?: { balanceAmount?: { amount?: number; currency?: string; }; }; bankTransactionCode?: string; bookingDate?: string; bookingDateTime?: string; cardId?: string; createdDate?: string; createdDateTime?: string; debtorAccount?: { currency?: string; iban?: string; } | { currency?: string; other?: { identification?: string; schemeNameCone?: string; }; } | { currency?: string; }; debtorAgent?: string; debtorName?: string; debtorNameOriginal?: string; endToEndId?: string; exchangeDetails?: { exchangeRate?: number; fee?: number; }; fundsTransferId?: string; paymentOrderId?: string; remittanceInformationStructuredArray?: { reference?: string; referenceIssuer?: string; referenceType?: string; }; remittanceInformationUnstructured?: string; transactionCategory?: { icon?: string; name?: string; }; valueDate?: string; valueDateTime?: string; } | { accountId: string; transactionAmount: { amount?: number; currency?: string; }; transactionId: string; transactionStatus: 'PENDING' | 'BOOKED' | 'INFORMATION'; additionalAttributes?: object; additionalCounterpartyData?: { address?: { city?: string; country?: string; latitude?: number; longitude?: number; state?: string; street?: string; zip?: string; }; industryCategoryCode?: number; logo?: string; website?: string; }; additionalInformation?: { description?: string; }; balanceAfterTransaction?: { balanceAmount?: { amount?: number; currency?: string; }; }; bankTransactionCode?: string; bookingDate?: string; bookingDateTime?: string; cardId?: string; creditorAccount?: { currency?: string; iban?: string; } | { currency?: string; other?: { identification?: string; schemeNameCone?: string; }; } | { currency?: string; }; creditorAgent?: string; creditorName?: string; creditorNameOriginal?: string; endToEndId?: string; exchangeDetails?: { exchangeRate?: number; fee?: number; }; fundsTransferId?: string; paymentOrderId?: string; remittanceInformationStructuredArray?: { reference?: string; referenceIssuer?: string; referenceType?: string; }; remittanceInformationUnstructured?: string; transactionCategory?: { icon?: string; name?: string; }; valueDate?: string; valueDateTime?: string; }[]`\n  - `nextCursor?: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst transactions = await client.parties.transactions.list('6878951b-256b-4baa-9e81-ad4c577adc4e');\n\nconsole.log(transactions);\n```",
    perLanguage: {
      typescript: {
        method: 'client.parties.transactions.list',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nconst transactions = await client.parties.transactions.list('6878951b-256b-4baa-9e81-ad4c577adc4e');\n\nconsole.log(transactions.items);",
      },
      python: {
        method: 'parties.transactions.list',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\ntransactions = client.parties.transactions.list(\n    party_id="6878951b-256b-4baa-9e81-ad4c577adc4e",\n)\nprint(transactions.items)',
      },
      java: {
        method: 'parties().transactions().list',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.parties.transactions.TransactionListParams;\nimport com.plumery.api.models.parties.transactions.TransactionListResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        TransactionListResponse transactions = client.parties().transactions().list("6878951b-256b-4baa-9e81-ad4c577adc4e");\n    }\n}',
      },
      kotlin: {
        method: 'parties().transactions().list',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.parties.transactions.TransactionListParams\nimport com.plumery.api.models.parties.transactions.TransactionListResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val transactions: TransactionListResponse = client.parties().transactions().list("6878951b-256b-4baa-9e81-ad4c577adc4e")\n}',
      },
      go: {
        method: 'client.Parties.Transactions.List',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\ttransactions, err := client.Parties.Transactions.List(\n\t\tcontext.TODO(),\n\t\t"6878951b-256b-4baa-9e81-ad4c577adc4e",\n\t\tplumery.PartyTransactionListParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", transactions.Items)\n}\n',
      },
      cli: {
        method: 'transactions list',
        example:
          "plumery parties:transactions list \\\n  --session 'My Session' \\\n  --party-id 6878951b-256b-4baa-9e81-ad4c577adc4e",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/parties/$PARTY_ID/transactions \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'retrieve',
    endpoint: '/api/v1/parties/{partyId}/transactions/{transactionId}',
    httpMethod: 'get',
    summary: 'Retrieve transaction details',
    description: 'Allows retrieval of a single transaction, fetched by its ID.',
    stainlessPath: '(resource) parties.transactions > (method) retrieve',
    qualified: 'client.parties.transactions.retrieve',
    params: [
      'partyId: string;',
      'transactionId: string;',
      'plmr-user-action?: boolean;',
      'X-Request-ID?: string;',
    ],
    response: '{ transactionDetails?: object | object; }',
    markdown:
      "## retrieve\n\n`client.parties.transactions.retrieve(partyId: string, transactionId: string, plmr-user-action?: boolean, X-Request-ID?: string): { transactionDetails?: object | object; }`\n\n**get** `/api/v1/parties/{partyId}/transactions/{transactionId}`\n\nAllows retrieval of a single transaction, fetched by its ID.\n\n### Parameters\n\n- `partyId: string`\n\n- `transactionId: string`\n  The unique identifier of the transaction\n\n\n- `plmr-user-action?: boolean`\n\n- `X-Request-ID?: string`\n\n### Returns\n\n- `{ transactionDetails?: { accountId: string; transactionAmount: { amount?: number; currency?: string; }; transactionId: string; transactionStatus: 'PENDING' | 'BOOKED' | 'INFORMATION'; additionalAttributes?: object; additionalCounterpartyData?: { address?: object; industryCategoryCode?: number; logo?: string; website?: string; }; additionalInformation?: { description?: string; }; balanceAfterTransaction?: { balanceAmount?: object; }; bankTransactionCode?: string; bookingDate?: string; bookingDateTime?: string; cardId?: string; createdDate?: string; createdDateTime?: string; debtorAccount?: { currency?: string; iban?: string; } | { currency?: string; other?: object; } | { currency?: string; }; debtorAgent?: string; debtorName?: string; debtorNameOriginal?: string; endToEndId?: string; exchangeDetails?: { exchangeRate?: number; fee?: number; }; fundsTransferId?: string; paymentOrderId?: string; remittanceInformationStructuredArray?: { reference?: string; referenceIssuer?: string; referenceType?: string; }; remittanceInformationUnstructured?: string; transactionCategory?: { icon?: string; name?: string; }; valueDate?: string; valueDateTime?: string; } | { accountId: string; transactionAmount: { amount?: number; currency?: string; }; transactionId: string; transactionStatus: 'PENDING' | 'BOOKED' | 'INFORMATION'; additionalAttributes?: object; additionalCounterpartyData?: { address?: object; industryCategoryCode?: number; logo?: string; website?: string; }; additionalInformation?: { description?: string; }; balanceAfterTransaction?: { balanceAmount?: object; }; bankTransactionCode?: string; bookingDate?: string; bookingDateTime?: string; cardId?: string; creditorAccount?: { currency?: string; iban?: string; } | { currency?: string; other?: object; } | { currency?: string; }; creditorAgent?: string; creditorName?: string; creditorNameOriginal?: string; endToEndId?: string; exchangeDetails?: { exchangeRate?: number; fee?: number; }; fundsTransferId?: string; paymentOrderId?: string; remittanceInformationStructuredArray?: { reference?: string; referenceIssuer?: string; referenceType?: string; }; remittanceInformationUnstructured?: string; transactionCategory?: { icon?: string; name?: string; }; valueDate?: string; valueDateTime?: string; }; }`\n\n  - `transactionDetails?: { accountId: string; transactionAmount: { amount?: number; currency?: string; }; transactionId: string; transactionStatus: 'PENDING' | 'BOOKED' | 'INFORMATION'; additionalAttributes?: object; additionalCounterpartyData?: { address?: { city?: string; country?: string; latitude?: number; longitude?: number; state?: string; street?: string; zip?: string; }; industryCategoryCode?: number; logo?: string; website?: string; }; additionalInformation?: { description?: string; }; balanceAfterTransaction?: { balanceAmount?: { amount?: number; currency?: string; }; }; bankTransactionCode?: string; bookingDate?: string; bookingDateTime?: string; cardId?: string; createdDate?: string; createdDateTime?: string; debtorAccount?: { currency?: string; iban?: string; } | { currency?: string; other?: { identification?: string; schemeNameCone?: string; }; } | { currency?: string; }; debtorAgent?: string; debtorName?: string; debtorNameOriginal?: string; endToEndId?: string; exchangeDetails?: { exchangeRate?: number; fee?: number; }; fundsTransferId?: string; paymentOrderId?: string; remittanceInformationStructuredArray?: { reference?: string; referenceIssuer?: string; referenceType?: string; }; remittanceInformationUnstructured?: string; transactionCategory?: { icon?: string; name?: string; }; valueDate?: string; valueDateTime?: string; } | { accountId: string; transactionAmount: { amount?: number; currency?: string; }; transactionId: string; transactionStatus: 'PENDING' | 'BOOKED' | 'INFORMATION'; additionalAttributes?: object; additionalCounterpartyData?: { address?: { city?: string; country?: string; latitude?: number; longitude?: number; state?: string; street?: string; zip?: string; }; industryCategoryCode?: number; logo?: string; website?: string; }; additionalInformation?: { description?: string; }; balanceAfterTransaction?: { balanceAmount?: { amount?: number; currency?: string; }; }; bankTransactionCode?: string; bookingDate?: string; bookingDateTime?: string; cardId?: string; creditorAccount?: { currency?: string; iban?: string; } | { currency?: string; other?: { identification?: string; schemeNameCone?: string; }; } | { currency?: string; }; creditorAgent?: string; creditorName?: string; creditorNameOriginal?: string; endToEndId?: string; exchangeDetails?: { exchangeRate?: number; fee?: number; }; fundsTransferId?: string; paymentOrderId?: string; remittanceInformationStructuredArray?: { reference?: string; referenceIssuer?: string; referenceType?: string; }; remittanceInformationUnstructured?: string; transactionCategory?: { icon?: string; name?: string; }; valueDate?: string; valueDateTime?: string; }`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst transaction = await client.parties.transactions.retrieve('5f0d3de8-d521-11ed-afa1-0242ac120002', { partyId: '6878951b-256b-4baa-9e81-ad4c577adc4e' });\n\nconsole.log(transaction);\n```",
    perLanguage: {
      typescript: {
        method: 'client.parties.transactions.retrieve',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nconst transaction = await client.parties.transactions.retrieve(\n  '5f0d3de8-d521-11ed-afa1-0242ac120002',\n  { partyId: '6878951b-256b-4baa-9e81-ad4c577adc4e' },\n);\n\nconsole.log(transaction.transactionDetails);",
      },
      python: {
        method: 'parties.transactions.retrieve',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\ntransaction = client.parties.transactions.retrieve(\n    transaction_id="5f0d3de8-d521-11ed-afa1-0242ac120002",\n    party_id="6878951b-256b-4baa-9e81-ad4c577adc4e",\n)\nprint(transaction.transaction_details)',
      },
      java: {
        method: 'parties().transactions().retrieve',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.parties.transactions.TransactionRetrieveParams;\nimport com.plumery.api.models.parties.transactions.TransactionRetrieveResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        TransactionRetrieveParams params = TransactionRetrieveParams.builder()\n            .partyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n            .transactionId("5f0d3de8-d521-11ed-afa1-0242ac120002")\n            .build();\n        TransactionRetrieveResponse transaction = client.parties().transactions().retrieve(params);\n    }\n}',
      },
      kotlin: {
        method: 'parties().transactions().retrieve',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.parties.transactions.TransactionRetrieveParams\nimport com.plumery.api.models.parties.transactions.TransactionRetrieveResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: TransactionRetrieveParams = TransactionRetrieveParams.builder()\n        .partyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n        .transactionId("5f0d3de8-d521-11ed-afa1-0242ac120002")\n        .build()\n    val transaction: TransactionRetrieveResponse = client.parties().transactions().retrieve(params)\n}',
      },
      go: {
        method: 'client.Parties.Transactions.Get',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\ttransaction, err := client.Parties.Transactions.Get(\n\t\tcontext.TODO(),\n\t\t"6878951b-256b-4baa-9e81-ad4c577adc4e",\n\t\t"5f0d3de8-d521-11ed-afa1-0242ac120002",\n\t\tplumery.PartyTransactionGetParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", transaction.TransactionDetails)\n}\n',
      },
      cli: {
        method: 'transactions retrieve',
        example:
          "plumery parties:transactions retrieve \\\n  --session 'My Session' \\\n  --party-id 6878951b-256b-4baa-9e81-ad4c577adc4e \\\n  --transaction-id 5f0d3de8-d521-11ed-afa1-0242ac120002",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/parties/$PARTY_ID/transactions/$TRANSACTION_ID \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'generateSnapshot',
    endpoint: '/api/v1/parties/{partyId}/transactions/{transactionId}:generate-snapshot',
    httpMethod: 'post',
    summary: 'Generate Single Transaction Snapshot',
    description:
      'Allows retrieval of a single transaction’s snapshot (Simple transaction of Payment transaction). \nIt requires a template for the transaction or payment snapshot to be configured in advance.\n',
    stainlessPath: '(resource) parties.transactions > (method) generateSnapshot',
    qualified: 'client.parties.transactions.generateSnapshot',
    params: [
      'partyId: string;',
      'transactionId: string;',
      'plmr-user-action?: boolean;',
      'X-Request-ID?: string;',
    ],
    response: 'string',
    markdown:
      "## generateSnapshot\n\n`client.parties.transactions.generateSnapshot(partyId: string, transactionId: string, plmr-user-action?: boolean, X-Request-ID?: string): string`\n\n**post** `/api/v1/parties/{partyId}/transactions/{transactionId}:generate-snapshot`\n\nAllows retrieval of a single transaction’s snapshot (Simple transaction of Payment transaction). \nIt requires a template for the transaction or payment snapshot to be configured in advance.\n\n\n### Parameters\n\n- `partyId: string`\n\n- `transactionId: string`\n  The unique identifier of the transaction\n\n\n- `plmr-user-action?: boolean`\n\n- `X-Request-ID?: string`\n\n### Returns\n\n- `string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.parties.transactions.generateSnapshot('5f0d3de8-d521-11ed-afa1-0242ac120002', { partyId: '6878951b-256b-4baa-9e81-ad4c577adc4e' });\n\nconsole.log(response);\n\nconst content = await response.blob()\nconsole.log(content)\n```",
    perLanguage: {
      typescript: {
        method: 'client.parties.transactions.generateSnapshot',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nconst response = await client.parties.transactions.generateSnapshot(\n  '5f0d3de8-d521-11ed-afa1-0242ac120002',\n  { partyId: '6878951b-256b-4baa-9e81-ad4c577adc4e' },\n);\n\nconsole.log(response);\n\nconst content = await response.blob();\nconsole.log(content);",
      },
      python: {
        method: 'parties.transactions.generate_snapshot',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nresponse = client.parties.transactions.generate_snapshot(\n    transaction_id="5f0d3de8-d521-11ed-afa1-0242ac120002",\n    party_id="6878951b-256b-4baa-9e81-ad4c577adc4e",\n)\nprint(response)\ncontent = response.read()\nprint(content)',
      },
      java: {
        method: 'parties().transactions().generateSnapshot',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.core.http.HttpResponse;\nimport com.plumery.api.models.parties.transactions.TransactionGenerateSnapshotParams;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        TransactionGenerateSnapshotParams params = TransactionGenerateSnapshotParams.builder()\n            .partyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n            .transactionId("5f0d3de8-d521-11ed-afa1-0242ac120002")\n            .build();\n        HttpResponse response = client.parties().transactions().generateSnapshot(params);\n    }\n}',
      },
      kotlin: {
        method: 'parties().transactions().generateSnapshot',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.core.http.HttpResponse\nimport com.plumery.api.models.parties.transactions.TransactionGenerateSnapshotParams\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: TransactionGenerateSnapshotParams = TransactionGenerateSnapshotParams.builder()\n        .partyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n        .transactionId("5f0d3de8-d521-11ed-afa1-0242ac120002")\n        .build()\n    val response: HttpResponse = client.parties().transactions().generateSnapshot(params)\n}',
      },
      go: {
        method: 'client.Parties.Transactions.GenerateSnapshot',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tresponse, err := client.Parties.Transactions.GenerateSnapshot(\n\t\tcontext.TODO(),\n\t\t"6878951b-256b-4baa-9e81-ad4c577adc4e",\n\t\t"5f0d3de8-d521-11ed-afa1-0242ac120002",\n\t\tplumery.PartyTransactionGenerateSnapshotParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response)\n}\n',
      },
      cli: {
        method: 'transactions generateSnapshot',
        example:
          "plumery parties:transactions generate-snapshot \\\n  --session 'My Session' \\\n  --party-id 6878951b-256b-4baa-9e81-ad4c577adc4e \\\n  --transaction-id 5f0d3de8-d521-11ed-afa1-0242ac120002",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/parties/$PARTY_ID/transactions/$TRANSACTION_ID:generate-snapshot \\\n    -X POST \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'list',
    endpoint: '/api/v1/parties/{partyId}/transactions/insights/turnovers',
    httpMethod: 'get',
    summary: 'Get accounts turnovers',
    description: 'Get accounts turnovers',
    stainlessPath: '(resource) parties.transactions.insights.turnovers > (method) list',
    qualified: 'client.parties.transactions.insights.turnovers.list',
    params: [
      'partyId: string;',
      "cadence: 'DAILY' | 'MONTHLY' | 'YEARLY';",
      'accounts?: string[];',
      'dateFrom?: string;',
      'dateTo?: string;',
      'offset?: string;',
      'plmr-user-action?: boolean;',
      'X-Request-ID?: string;',
    ],
    response:
      '{ accountsTurnovers?: { accountId?: string; turnovers?: { deposit?: number; period?: string; withdraw?: number; }[]; }[]; }',
    markdown:
      "## list\n\n`client.parties.transactions.insights.turnovers.list(partyId: string, cadence: 'DAILY' | 'MONTHLY' | 'YEARLY', accounts?: string[], dateFrom?: string, dateTo?: string, offset?: string, plmr-user-action?: boolean, X-Request-ID?: string): { accountsTurnovers?: object[]; }`\n\n**get** `/api/v1/parties/{partyId}/transactions/insights/turnovers`\n\nGet accounts turnovers\n\n### Parameters\n\n- `partyId: string`\n\n- `cadence: 'DAILY' | 'MONTHLY' | 'YEARLY'`\n  The cadence of the insights report.\n\n- `accounts?: string[]`\n  Allows filtering transactions by list of Account IDs. Account ID is the \"accountId\" attribute of the account structure.\n\n\n- `dateFrom?: string`\n  Starting date (inclusive of the date entered) of the transaction list based on the booking date. Must be bigger than 2020-01-01.\n\n- `dateTo?: string`\n  End date (inclusive of the date entered) of the transaction list based on the booking date, default is \"now\" if not given.\n\n\n- `offset?: string`\n  The time offset for the date range, default is UTC.\n\n- `plmr-user-action?: boolean`\n\n- `X-Request-ID?: string`\n\n### Returns\n\n- `{ accountsTurnovers?: { accountId?: string; turnovers?: { deposit?: number; period?: string; withdraw?: number; }[]; }[]; }`\n\n  - `accountsTurnovers?: { accountId?: string; turnovers?: { deposit?: number; period?: string; withdraw?: number; }[]; }[]`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst turnovers = await client.parties.transactions.insights.turnovers.list('6878951b-256b-4baa-9e81-ad4c577adc4e', { cadence: 'DAILY' });\n\nconsole.log(turnovers);\n```",
    perLanguage: {
      typescript: {
        method: 'client.parties.transactions.insights.turnovers.list',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nconst turnovers = await client.parties.transactions.insights.turnovers.list(\n  '6878951b-256b-4baa-9e81-ad4c577adc4e',\n  { cadence: 'DAILY' },\n);\n\nconsole.log(turnovers.accountsTurnovers);",
      },
      python: {
        method: 'parties.transactions.insights.turnovers.list',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nturnovers = client.parties.transactions.insights.turnovers.list(\n    party_id="6878951b-256b-4baa-9e81-ad4c577adc4e",\n    cadence="DAILY",\n)\nprint(turnovers.accounts_turnovers)',
      },
      java: {
        method: 'parties().transactions().insights().turnovers().list',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.parties.transactions.insights.turnovers.TurnoverListParams;\nimport com.plumery.api.models.parties.transactions.insights.turnovers.TurnoverListResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        TurnoverListParams params = TurnoverListParams.builder()\n            .partyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n            .cadence(TurnoverListParams.Cadence.DAILY)\n            .build();\n        TurnoverListResponse turnovers = client.parties().transactions().insights().turnovers().list(params);\n    }\n}',
      },
      kotlin: {
        method: 'parties().transactions().insights().turnovers().list',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.parties.transactions.insights.turnovers.TurnoverListParams\nimport com.plumery.api.models.parties.transactions.insights.turnovers.TurnoverListResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: TurnoverListParams = TurnoverListParams.builder()\n        .partyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n        .cadence(TurnoverListParams.Cadence.DAILY)\n        .build()\n    val turnovers: TurnoverListResponse = client.parties().transactions().insights().turnovers().list(params)\n}',
      },
      go: {
        method: 'client.Parties.Transactions.Insights.Turnovers.List',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tturnovers, err := client.Parties.Transactions.Insights.Turnovers.List(\n\t\tcontext.TODO(),\n\t\t"6878951b-256b-4baa-9e81-ad4c577adc4e",\n\t\tplumery.PartyTransactionInsightTurnoverListParams{\n\t\t\tCadence: plumery.F(plumery.PartyTransactionInsightTurnoverListParamsCadenceDaily),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", turnovers.AccountsTurnovers)\n}\n',
      },
      cli: {
        method: 'turnovers list',
        example:
          "plumery parties:transactions:insights:turnovers list \\\n  --session 'My Session' \\\n  --party-id 6878951b-256b-4baa-9e81-ad4c577adc4e \\\n  --cadence DAILY",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/parties/$PARTY_ID/transactions/insights/turnovers \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'list',
    endpoint: '/api/v1/parties/{partyId}/transactions/insights/balances',
    httpMethod: 'get',
    summary: 'Get accounts balances',
    description: 'Get accounts balances',
    stainlessPath: '(resource) parties.transactions.insights.balances > (method) list',
    qualified: 'client.parties.transactions.insights.balances.list',
    params: [
      'partyId: string;',
      "cadence: 'DAILY' | 'MONTHLY' | 'YEARLY';",
      'accounts?: string[];',
      'dateFrom?: string;',
      'dateTo?: string;',
      'offset?: string;',
      'plmr-user-action?: boolean;',
      'X-Request-ID?: string;',
    ],
    response:
      '{ accountsBalances?: { accountId?: string; balances?: { amount?: number; period?: string; }[]; }[]; }',
    markdown:
      "## list\n\n`client.parties.transactions.insights.balances.list(partyId: string, cadence: 'DAILY' | 'MONTHLY' | 'YEARLY', accounts?: string[], dateFrom?: string, dateTo?: string, offset?: string, plmr-user-action?: boolean, X-Request-ID?: string): { accountsBalances?: object[]; }`\n\n**get** `/api/v1/parties/{partyId}/transactions/insights/balances`\n\nGet accounts balances\n\n### Parameters\n\n- `partyId: string`\n\n- `cadence: 'DAILY' | 'MONTHLY' | 'YEARLY'`\n  The cadence of the insights report.\n\n- `accounts?: string[]`\n  Allows filtering transactions by list of Account IDs. Account ID is the \"accountId\" attribute of the account structure.\n\n\n- `dateFrom?: string`\n  Starting date (inclusive of the date entered) of the transaction list based on the booking date. Must be bigger than 2020-01-01.\n\n- `dateTo?: string`\n  End date (inclusive of the date entered) of the transaction list based on the booking date, default is \"now\" if not given.\n\n\n- `offset?: string`\n  The time offset for the date range, default is UTC.\n\n- `plmr-user-action?: boolean`\n\n- `X-Request-ID?: string`\n\n### Returns\n\n- `{ accountsBalances?: { accountId?: string; balances?: { amount?: number; period?: string; }[]; }[]; }`\n\n  - `accountsBalances?: { accountId?: string; balances?: { amount?: number; period?: string; }[]; }[]`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst balances = await client.parties.transactions.insights.balances.list('6878951b-256b-4baa-9e81-ad4c577adc4e', { cadence: 'DAILY' });\n\nconsole.log(balances);\n```",
    perLanguage: {
      typescript: {
        method: 'client.parties.transactions.insights.balances.list',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nconst balances = await client.parties.transactions.insights.balances.list(\n  '6878951b-256b-4baa-9e81-ad4c577adc4e',\n  { cadence: 'DAILY' },\n);\n\nconsole.log(balances.accountsBalances);",
      },
      python: {
        method: 'parties.transactions.insights.balances.list',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nbalances = client.parties.transactions.insights.balances.list(\n    party_id="6878951b-256b-4baa-9e81-ad4c577adc4e",\n    cadence="DAILY",\n)\nprint(balances.accounts_balances)',
      },
      java: {
        method: 'parties().transactions().insights().balances().list',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.parties.transactions.insights.balances.BalanceListParams;\nimport com.plumery.api.models.parties.transactions.insights.balances.BalanceListResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        BalanceListParams params = BalanceListParams.builder()\n            .partyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n            .cadence(BalanceListParams.Cadence.DAILY)\n            .build();\n        BalanceListResponse balances = client.parties().transactions().insights().balances().list(params);\n    }\n}',
      },
      kotlin: {
        method: 'parties().transactions().insights().balances().list',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.parties.transactions.insights.balances.BalanceListParams\nimport com.plumery.api.models.parties.transactions.insights.balances.BalanceListResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: BalanceListParams = BalanceListParams.builder()\n        .partyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n        .cadence(BalanceListParams.Cadence.DAILY)\n        .build()\n    val balances: BalanceListResponse = client.parties().transactions().insights().balances().list(params)\n}',
      },
      go: {
        method: 'client.Parties.Transactions.Insights.Balances.List',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tbalances, err := client.Parties.Transactions.Insights.Balances.List(\n\t\tcontext.TODO(),\n\t\t"6878951b-256b-4baa-9e81-ad4c577adc4e",\n\t\tplumery.PartyTransactionInsightBalanceListParams{\n\t\t\tCadence: plumery.F(plumery.PartyTransactionInsightBalanceListParamsCadenceDaily),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", balances.AccountsBalances)\n}\n',
      },
      cli: {
        method: 'balances list',
        example:
          "plumery parties:transactions:insights:balances list \\\n  --session 'My Session' \\\n  --party-id 6878951b-256b-4baa-9e81-ad4c577adc4e \\\n  --cadence DAILY",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/parties/$PARTY_ID/transactions/insights/balances \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'list',
    endpoint: '/api/v1/parties/{partyId}/transactions/insights/spending-summary',
    httpMethod: 'get',
    summary: 'Get spending summary by category',
    description: 'Get spending summary by category',
    stainlessPath: '(resource) parties.transactions.insights.spendingSummary > (method) list',
    qualified: 'client.parties.transactions.insights.spendingSummary.list',
    params: [
      'partyId: string;',
      'accounts?: string[];',
      'dateFrom?: string;',
      'dateTo?: string;',
      'offset?: string;',
      'plmr-user-action?: boolean;',
      'X-Request-ID?: string;',
    ],
    response:
      '{ summaries?: { accountId?: string; categories?: { amount?: number; name?: string; percentageOfTotal?: number; }[]; totalAmount?: string; }[]; }',
    markdown:
      '## list\n\n`client.parties.transactions.insights.spendingSummary.list(partyId: string, accounts?: string[], dateFrom?: string, dateTo?: string, offset?: string, plmr-user-action?: boolean, X-Request-ID?: string): { summaries?: object[]; }`\n\n**get** `/api/v1/parties/{partyId}/transactions/insights/spending-summary`\n\nGet spending summary by category\n\n### Parameters\n\n- `partyId: string`\n\n- `accounts?: string[]`\n  Allows filtering transactions by list of Account IDs. Account ID is the "accountId" attribute of the account structure.\n\n\n- `dateFrom?: string`\n  Starting date (inclusive of the date entered) of the transaction list based on the booking date. Must be bigger than 2020-01-01.\n\n- `dateTo?: string`\n  End date (inclusive of the date entered) of the transaction list based on the booking date, default is "now" if not given.\n\n\n- `offset?: string`\n  The time offset for the date range, default is UTC.\n\n- `plmr-user-action?: boolean`\n\n- `X-Request-ID?: string`\n\n### Returns\n\n- `{ summaries?: { accountId?: string; categories?: { amount?: number; name?: string; percentageOfTotal?: number; }[]; totalAmount?: string; }[]; }`\n\n  - `summaries?: { accountId?: string; categories?: { amount?: number; name?: string; percentageOfTotal?: number; }[]; totalAmount?: string; }[]`\n\n### Example\n\n```typescript\nimport Plumery from \'plumery\';\n\nconst client = new Plumery();\n\nconst spendingSummaries = await client.parties.transactions.insights.spendingSummary.list(\'6878951b-256b-4baa-9e81-ad4c577adc4e\');\n\nconsole.log(spendingSummaries);\n```',
    perLanguage: {
      typescript: {
        method: 'client.parties.transactions.insights.spendingSummary.list',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nconst spendingSummaries = await client.parties.transactions.insights.spendingSummary.list(\n  '6878951b-256b-4baa-9e81-ad4c577adc4e',\n);\n\nconsole.log(spendingSummaries.summaries);",
      },
      python: {
        method: 'parties.transactions.insights.spending_summary.list',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nspending_summaries = client.parties.transactions.insights.spending_summary.list(\n    party_id="6878951b-256b-4baa-9e81-ad4c577adc4e",\n)\nprint(spending_summaries.summaries)',
      },
      java: {
        method: 'parties().transactions().insights().spendingSummary().list',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.parties.transactions.insights.spendingsummary.SpendingSummaryListParams;\nimport com.plumery.api.models.parties.transactions.insights.spendingsummary.SpendingSummaryListResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        SpendingSummaryListResponse spendingSummaries = client.parties().transactions().insights().spendingSummary().list("6878951b-256b-4baa-9e81-ad4c577adc4e");\n    }\n}',
      },
      kotlin: {
        method: 'parties().transactions().insights().spendingSummary().list',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.parties.transactions.insights.spendingsummary.SpendingSummaryListParams\nimport com.plumery.api.models.parties.transactions.insights.spendingsummary.SpendingSummaryListResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val spendingSummaries: SpendingSummaryListResponse = client.parties().transactions().insights().spendingSummary().list("6878951b-256b-4baa-9e81-ad4c577adc4e")\n}',
      },
      go: {
        method: 'client.Parties.Transactions.Insights.SpendingSummary.List',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tspendingSummaries, err := client.Parties.Transactions.Insights.SpendingSummary.List(\n\t\tcontext.TODO(),\n\t\t"6878951b-256b-4baa-9e81-ad4c577adc4e",\n\t\tplumery.PartyTransactionInsightSpendingSummaryListParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", spendingSummaries.Summaries)\n}\n',
      },
      cli: {
        method: 'spendingSummary list',
        example:
          "plumery parties:transactions:insights:spending-summary list \\\n  --session 'My Session' \\\n  --party-id 6878951b-256b-4baa-9e81-ad4c577adc4e",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/parties/$PARTY_ID/transactions/insights/spending-summary \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'list',
    endpoint: '/api/v1/parties/{partyId}/loans',
    httpMethod: 'get',
    summary: 'Get Loans',
    description: 'Get user loans',
    stainlessPath: '(resource) parties.loans > (method) list',
    qualified: 'client.parties.loans.list',
    params: ['partyId: string;', 'plmr-user-action?: boolean;', 'X-Request-ID?: string;'],
    response:
      '{ loans?: { amount?: number; applicationId?: string; approvedDate?: string; balances?: { interestBalance?: number; interestPaid?: number; principalBalance?: number; principalPaid?: number; totalBalance?: number; totalPaid?: number; }; clientScore?: string; creationDate?: string; currency?: string; disbursementDate?: string; iban?: string; interestRate?: number; loanId?: string; name?: string; repayments?: { firstRepaymentDate?: string; interestRepayment?: number; principalRepayment?: number; repaymentInstallmentsNumber?: number; repaymentPeriodUnit?: string; totalRepayment?: number; }; state?: string; }[]; }',
    markdown:
      "## list\n\n`client.parties.loans.list(partyId: string, plmr-user-action?: boolean, X-Request-ID?: string): { loans?: object[]; }`\n\n**get** `/api/v1/parties/{partyId}/loans`\n\nGet user loans\n\n### Parameters\n\n- `partyId: string`\n\n- `plmr-user-action?: boolean`\n\n- `X-Request-ID?: string`\n\n### Returns\n\n- `{ loans?: { amount?: number; applicationId?: string; approvedDate?: string; balances?: { interestBalance?: number; interestPaid?: number; principalBalance?: number; principalPaid?: number; totalBalance?: number; totalPaid?: number; }; clientScore?: string; creationDate?: string; currency?: string; disbursementDate?: string; iban?: string; interestRate?: number; loanId?: string; name?: string; repayments?: { firstRepaymentDate?: string; interestRepayment?: number; principalRepayment?: number; repaymentInstallmentsNumber?: number; repaymentPeriodUnit?: string; totalRepayment?: number; }; state?: string; }[]; }`\n\n  - `loans?: { amount?: number; applicationId?: string; approvedDate?: string; balances?: { interestBalance?: number; interestPaid?: number; principalBalance?: number; principalPaid?: number; totalBalance?: number; totalPaid?: number; }; clientScore?: string; creationDate?: string; currency?: string; disbursementDate?: string; iban?: string; interestRate?: number; loanId?: string; name?: string; repayments?: { firstRepaymentDate?: string; interestRepayment?: number; principalRepayment?: number; repaymentInstallmentsNumber?: number; repaymentPeriodUnit?: string; totalRepayment?: number; }; state?: string; }[]`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst loans = await client.parties.loans.list('36a22460-ebc8-4ffe-a213-1683c5a420c5');\n\nconsole.log(loans);\n```",
    perLanguage: {
      typescript: {
        method: 'client.parties.loans.list',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nconst loans = await client.parties.loans.list('36a22460-ebc8-4ffe-a213-1683c5a420c5');\n\nconsole.log(loans.loans);",
      },
      python: {
        method: 'parties.loans.list',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nloans = client.parties.loans.list(\n    party_id="36a22460-ebc8-4ffe-a213-1683c5a420c5",\n)\nprint(loans.loans)',
      },
      java: {
        method: 'parties().loans().list',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.parties.loans.LoanListParams;\nimport com.plumery.api.models.parties.loans.LoanListResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        LoanListResponse loans = client.parties().loans().list("36a22460-ebc8-4ffe-a213-1683c5a420c5");\n    }\n}',
      },
      kotlin: {
        method: 'parties().loans().list',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.parties.loans.LoanListParams\nimport com.plumery.api.models.parties.loans.LoanListResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val loans: LoanListResponse = client.parties().loans().list("36a22460-ebc8-4ffe-a213-1683c5a420c5")\n}',
      },
      go: {
        method: 'client.Parties.Loans.List',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tloans, err := client.Parties.Loans.List(\n\t\tcontext.TODO(),\n\t\t"36a22460-ebc8-4ffe-a213-1683c5a420c5",\n\t\tplumery.PartyLoanListParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", loans.Loans)\n}\n',
      },
      cli: {
        method: 'loans list',
        example:
          "plumery parties:loans list \\\n  --session 'My Session' \\\n  --party-id 36a22460-ebc8-4ffe-a213-1683c5a420c5",
      },
      http: {
        example: 'curl https://api.plumery.com/api/v1/parties/$PARTY_ID/loans \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'retrieve',
    endpoint: '/api/v1/parties/{partyId}/loans/{loanId}',
    httpMethod: 'get',
    summary: 'Get loan details',
    description: 'Get loan details',
    stainlessPath: '(resource) parties.loans > (method) retrieve',
    qualified: 'client.parties.loans.retrieve',
    params: ['partyId: string;', 'loanId: string;', 'plmr-user-action?: boolean;', 'X-Request-ID?: string;'],
    response:
      "{ amount?: number; applicationId?: string; approvedDate?: string; balances?: { interestBalance?: number; interestPaid?: number; principalBalance?: number; principalPaid?: number; totalBalance?: number; totalPaid?: number; }; clientScore?: string; creationDate?: string; currency?: string; disbursementDate?: string; iban?: string; interestRate?: number; loanId?: string; name?: string; repayments?: { firstRepaymentDate?: string; interestRepayment?: number; principalRepayment?: number; repaymentInstallments?: { dueDate?: string; lastPaidDate?: string; number?: number; repaidDate?: string; state?: 'PAID' | 'PENDING' | 'PARTIALLY_PAID' | 'LATE' | 'GRACE'; totalDueAmount?: number; totalExpectedAmount?: number; totalPaidAmount?: number; }[]; repaymentInstallmentsNumber?: number; repaymentPeriodUnit?: string; totalRepayment?: number; }; state?: string; }",
    markdown:
      "## retrieve\n\n`client.parties.loans.retrieve(partyId: string, loanId: string, plmr-user-action?: boolean, X-Request-ID?: string): { amount?: number; applicationId?: string; approvedDate?: string; balances?: object; clientScore?: string; creationDate?: string; currency?: string; disbursementDate?: string; iban?: string; interestRate?: number; loanId?: string; name?: string; repayments?: object; state?: string; }`\n\n**get** `/api/v1/parties/{partyId}/loans/{loanId}`\n\nGet loan details\n\n### Parameters\n\n- `partyId: string`\n\n- `loanId: string`\n\n- `plmr-user-action?: boolean`\n\n- `X-Request-ID?: string`\n\n### Returns\n\n- `{ amount?: number; applicationId?: string; approvedDate?: string; balances?: { interestBalance?: number; interestPaid?: number; principalBalance?: number; principalPaid?: number; totalBalance?: number; totalPaid?: number; }; clientScore?: string; creationDate?: string; currency?: string; disbursementDate?: string; iban?: string; interestRate?: number; loanId?: string; name?: string; repayments?: { firstRepaymentDate?: string; interestRepayment?: number; principalRepayment?: number; repaymentInstallments?: { dueDate?: string; lastPaidDate?: string; number?: number; repaidDate?: string; state?: 'PAID' | 'PENDING' | 'PARTIALLY_PAID' | 'LATE' | 'GRACE'; totalDueAmount?: number; totalExpectedAmount?: number; totalPaidAmount?: number; }[]; repaymentInstallmentsNumber?: number; repaymentPeriodUnit?: string; totalRepayment?: number; }; state?: string; }`\n\n  - `amount?: number`\n  - `applicationId?: string`\n  - `approvedDate?: string`\n  - `balances?: { interestBalance?: number; interestPaid?: number; principalBalance?: number; principalPaid?: number; totalBalance?: number; totalPaid?: number; }`\n  - `clientScore?: string`\n  - `creationDate?: string`\n  - `currency?: string`\n  - `disbursementDate?: string`\n  - `iban?: string`\n  - `interestRate?: number`\n  - `loanId?: string`\n  - `name?: string`\n  - `repayments?: { firstRepaymentDate?: string; interestRepayment?: number; principalRepayment?: number; repaymentInstallments?: { dueDate?: string; lastPaidDate?: string; number?: number; repaidDate?: string; state?: 'PAID' | 'PENDING' | 'PARTIALLY_PAID' | 'LATE' | 'GRACE'; totalDueAmount?: number; totalExpectedAmount?: number; totalPaidAmount?: number; }[]; repaymentInstallmentsNumber?: number; repaymentPeriodUnit?: string; totalRepayment?: number; }`\n  - `state?: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst loan = await client.parties.loans.retrieve('8a19aed29227d089019227dd42c601e5', { partyId: '36a22460-ebc8-4ffe-a213-1683c5a420c5' });\n\nconsole.log(loan);\n```",
    perLanguage: {
      typescript: {
        method: 'client.parties.loans.retrieve',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nconst loan = await client.parties.loans.retrieve('8a19aed29227d089019227dd42c601e5', {\n  partyId: '36a22460-ebc8-4ffe-a213-1683c5a420c5',\n});\n\nconsole.log(loan.amount);",
      },
      python: {
        method: 'parties.loans.retrieve',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nloan = client.parties.loans.retrieve(\n    loan_id="8a19aed29227d089019227dd42c601e5",\n    party_id="36a22460-ebc8-4ffe-a213-1683c5a420c5",\n)\nprint(loan.amount)',
      },
      java: {
        method: 'parties().loans().retrieve',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.parties.loans.LoanRetrieveParams;\nimport com.plumery.api.models.parties.loans.LoanRetrieveResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        LoanRetrieveParams params = LoanRetrieveParams.builder()\n            .partyId("36a22460-ebc8-4ffe-a213-1683c5a420c5")\n            .loanId("8a19aed29227d089019227dd42c601e5")\n            .build();\n        LoanRetrieveResponse loan = client.parties().loans().retrieve(params);\n    }\n}',
      },
      kotlin: {
        method: 'parties().loans().retrieve',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.parties.loans.LoanRetrieveParams\nimport com.plumery.api.models.parties.loans.LoanRetrieveResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: LoanRetrieveParams = LoanRetrieveParams.builder()\n        .partyId("36a22460-ebc8-4ffe-a213-1683c5a420c5")\n        .loanId("8a19aed29227d089019227dd42c601e5")\n        .build()\n    val loan: LoanRetrieveResponse = client.parties().loans().retrieve(params)\n}',
      },
      go: {
        method: 'client.Parties.Loans.Get',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tloan, err := client.Parties.Loans.Get(\n\t\tcontext.TODO(),\n\t\t"36a22460-ebc8-4ffe-a213-1683c5a420c5",\n\t\t"8a19aed29227d089019227dd42c601e5",\n\t\tplumery.PartyLoanGetParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", loan.Amount)\n}\n',
      },
      cli: {
        method: 'loans retrieve',
        example:
          "plumery parties:loans retrieve \\\n  --session 'My Session' \\\n  --party-id 36a22460-ebc8-4ffe-a213-1683c5a420c5 \\\n  --loan-id 8a19aed29227d089019227dd42c601e5",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/parties/$PARTY_ID/loans/$LOAN_ID \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'create',
    endpoint: '/api/v1/parties/{partyId}/payments',
    httpMethod: 'post',
    summary: 'Initiate Payment',
    description:
      'Initiate a new payment.<br>\nPayment can be initiated with either ``counterpartyId`` or counterparty details.<br>\nFor initiation with counterpartyId, ``counterpartyId`` field is mandatory.<br>\nFor initiation with counterparty details, ``creditorAccount`` and ``creditorName`` are mandatory.<br>\nProviding both ``counterpartyId`` and counterparty details like ``creditorAddress`` will result in 400 Bad request response.\n',
    stainlessPath: '(resource) parties.payments > (method) create',
    qualified: 'client.parties.payments.create',
    params: [
      'partyId: string;',
      'debtorAccount: { accountId: string; currency: string; };',
      'instructedAmount: { amount: string; currency: string; };',
      'additionalAttributes?: object;',
      'counterpartyId?: string;',
      'creditorAccount?: { bban?: string; cashAccountType?: string; currency?: string; iban?: string; msisdn?: string; other?: { identification: string; issuer?: string; schemeNameCode?: string; schemeNameProprietary?: string; }; };',
      'creditorAddress?: { country: string; buildingName?: string; buildingNumber?: string; countrySubDivision?: string; districtName?: string; floor?: string; postBox?: string; postCode?: string; streetName?: string; suite?: string; townLocationName?: string; townName?: string; };',
      'creditorAgent?: string;',
      'creditorName?: string;',
      'debtorAddress?: { country: string; buildingName?: string; buildingNumber?: string; countrySubDivision?: string; districtName?: string; floor?: string; postBox?: string; postCode?: string; streetName?: string; suite?: string; townLocationName?: string; townName?: string; };',
      'endToEndIdentification?: string;',
      'paymentMethodId?: string;',
      "paymentType?: { serviceLevel: 'SEPA' | 'INTERNAL' | 'SDVA' | 'OTHER'; categoryPurpose?: string; localInstrument?: string; routingPreference?: 'NONE' | 'HIGH_PRIORITY' | 'INSTANT'; };",
      'remittanceInformationStructured?: { reference: string; referenceIssuer?: string; referenceType?: string; };',
      'remittanceInformationUnstructured?: string;',
      'supplementaryData?: { amkCode?: string; };',
      'plmr-mfa-challenge-id?: string;',
      'plmr-mfa-signature?: string;',
      'plmr-user-action?: boolean;',
      'X-Device-Integrity-Token?: string;',
      'X-Request-ID?: string;',
    ],
    response: "{ paymentId: string; paymentStatus: 'ACCC' | 'RCVD' | 'RJCT'; }",
    markdown:
      '## create\n\n`client.parties.payments.create(partyId: string, debtorAccount: { accountId: string; currency: string; }, instructedAmount: { amount: string; currency: string; }, additionalAttributes?: object, counterpartyId?: string, creditorAccount?: { bban?: string; cashAccountType?: string; currency?: string; iban?: string; msisdn?: string; other?: { identification: string; issuer?: string; schemeNameCode?: string; schemeNameProprietary?: string; }; }, creditorAddress?: { country: string; buildingName?: string; buildingNumber?: string; countrySubDivision?: string; districtName?: string; floor?: string; postBox?: string; postCode?: string; streetName?: string; suite?: string; townLocationName?: string; townName?: string; }, creditorAgent?: string, creditorName?: string, debtorAddress?: { country: string; buildingName?: string; buildingNumber?: string; countrySubDivision?: string; districtName?: string; floor?: string; postBox?: string; postCode?: string; streetName?: string; suite?: string; townLocationName?: string; townName?: string; }, endToEndIdentification?: string, paymentMethodId?: string, paymentType?: { serviceLevel: \'SEPA\' | \'INTERNAL\' | \'SDVA\' | \'OTHER\'; categoryPurpose?: string; localInstrument?: string; routingPreference?: \'NONE\' | \'HIGH_PRIORITY\' | \'INSTANT\'; }, remittanceInformationStructured?: { reference: string; referenceIssuer?: string; referenceType?: string; }, remittanceInformationUnstructured?: string, supplementaryData?: { amkCode?: string; }, plmr-mfa-challenge-id?: string, plmr-mfa-signature?: string, plmr-user-action?: boolean, X-Device-Integrity-Token?: string, X-Request-ID?: string): { paymentId: string; paymentStatus: \'ACCC\' | \'RCVD\' | \'RJCT\'; }`\n\n**post** `/api/v1/parties/{partyId}/payments`\n\nInitiate a new payment.<br>\nPayment can be initiated with either ``counterpartyId`` or counterparty details.<br>\nFor initiation with counterpartyId, ``counterpartyId`` field is mandatory.<br>\nFor initiation with counterparty details, ``creditorAccount`` and ``creditorName`` are mandatory.<br>\nProviding both ``counterpartyId`` and counterparty details like ``creditorAddress`` will result in 400 Bad request response.\n\n\n### Parameters\n\n- `partyId: string`\n\n- `debtorAccount: { accountId: string; currency: string; }`\n  Details of the account from which the amount will be debited.\n  - `accountId: string`\n    The ID of the account that will be debited.\n  - `currency: string`\n    ISO 4217 Alpha 3 currency code.\n\n\n- `instructedAmount: { amount: string; currency: string; }`\n  - `amount: string`\n    The amount given with fractional digits, where fractions must be compliant to the currency definition.\nUp to 14 significant figures. Negative amounts are signed by minus.\nThe decimal separator is a dot.\n\n**Example:**\nValid representations for EUR with up to two decimals are:\n\n  * 1056\n  * 5768.2\n  * -1.50\n  * 5877.78\n\n  - `currency: string`\n    ISO 4217 Alpha 3 currency code.\n\n\n- `additionalAttributes?: object`\n  Free-form map of non-standard attributes forwarded with the payment initiation request.\nValues are passed through unchanged to the payment order command for downstream consumers.\n\n\n- `counterpartyId?: string`\n  The Id of the counterparty.\n\n\n- `creditorAccount?: { bban?: string; cashAccountType?: string; currency?: string; iban?: string; msisdn?: string; other?: { identification: string; issuer?: string; schemeNameCode?: string; schemeNameProprietary?: string; }; }`\n  Reference to a creditor account.\n\n  - `bban?: string`\n    Basic Bank Account Number (BBAN) Identifier.\n  - `cashAccountType?: string`\n    ExternalCashAccountType1Code from ISO 20022.\n  - `currency?: string`\n    ISO 4217 Alpha 3 currency code.\n\n  - `iban?: string`\n    IBAN of an account.\n  - `msisdn?: string`\n    Mobile phone number.\n  - `other?: { identification: string; issuer?: string; schemeNameCode?: string; schemeNameProprietary?: string; }`\n    In cases where the specifically defined criteria (IBAN, BBAN, MSISDN) are not provided to identify an instance of the respective account type (e.g. a savings account), the ASPSP shall include a proprietary ID of the respective account that uniquely identifies the account for this ASPSP.\n\n- `creditorAddress?: { country: string; buildingName?: string; buildingNumber?: string; countrySubDivision?: string; districtName?: string; floor?: string; postBox?: string; postCode?: string; streetName?: string; suite?: string; townLocationName?: string; townName?: string; }`\n  - `country: string`\n    Nation with its own government. ISO 3166, Alpha-2 code\n\n  - `buildingName?: string`\n    Name of the building or house\n\n  - `buildingNumber?: string`\n    Number that identifies the position of a building on a street\n\n  - `countrySubDivision?: string`\n    Identifies a subdivision of a country such as state, region, county\n\n  - `districtName?: string`\n    Identifies a subdivision within a country sub-division\n\n  - `floor?: string`\n    Floor or storey within a building\n\n  - `postBox?: string`\n    Numbered box in a post office, assigned to a person or organisation, where letters are kept until called for\n\n  - `postCode?: string`\n    Identifier consisting of a group of letters and/or numbers that is added to a postal address to assist the sorting of mail\n\n  - `streetName?: string`\n    Name of a street or thoroughfare\n\n  - `suite?: string`\n    Building room number\n\n  - `townLocationName?: string`\n    Specific location name within the town\n\n  - `townName?: string`\n    Name of a built-up area, with defined boundaries, and a local government\n\n\n- `creditorAgent?: string`\n  BICFI\n\n\n- `creditorName?: string`\n  Creditor name.\n\n- `debtorAddress?: { country: string; buildingName?: string; buildingNumber?: string; countrySubDivision?: string; districtName?: string; floor?: string; postBox?: string; postCode?: string; streetName?: string; suite?: string; townLocationName?: string; townName?: string; }`\n  - `country: string`\n    Nation with its own government. ISO 3166, Alpha-2 code\n\n  - `buildingName?: string`\n    Name of the building or house\n\n  - `buildingNumber?: string`\n    Number that identifies the position of a building on a street\n\n  - `countrySubDivision?: string`\n    Identifies a subdivision of a country such as state, region, county\n\n  - `districtName?: string`\n    Identifies a subdivision within a country sub-division\n\n  - `floor?: string`\n    Floor or storey within a building\n\n  - `postBox?: string`\n    Numbered box in a post office, assigned to a person or organisation, where letters are kept until called for\n\n  - `postCode?: string`\n    Identifier consisting of a group of letters and/or numbers that is added to a postal address to assist the sorting of mail\n\n  - `streetName?: string`\n    Name of a street or thoroughfare\n\n  - `suite?: string`\n    Building room number\n\n  - `townLocationName?: string`\n    Specific location name within the town\n\n  - `townName?: string`\n    Name of a built-up area, with defined boundaries, and a local government\n\n\n- `endToEndIdentification?: string`\n\n- `paymentMethodId?: string`\n  The Id of the payment method.\n\n\n- `paymentType?: { serviceLevel: \'SEPA\' | \'INTERNAL\' | \'SDVA\' | \'OTHER\'; categoryPurpose?: string; localInstrument?: string; routingPreference?: \'NONE\' | \'HIGH_PRIORITY\' | \'INSTANT\'; }`\n  Specifies the payment type.\nAllowed values:\n- SEPA Instant payment          \n  ```\n  "paymentType": {\n      "serviceLevel": "SEPA",\n      "localInstrument": "INST",\n      "categoryPurpose": null,\n      "routingPreference": "INSTANT"\n     }\n  }\n  ```\n- SEPA Regular payment\n  ```\n  "paymentType": {\n      "serviceLevel": "SEPA",\n      "localInstrument": "SCT",\n      "categoryPurpose": null,\n      "routingPreference": "NONE"\n    }\n  }\n  ```\n- SEPA Any payment\n  ```\n  "paymentType": {\n      "serviceLevel": "SEPA",\n      "localInstrument": null,\n      "categoryPurpose": null,\n      "routingPreference": "NONE"\n     }\n  }\n  ```\n- Internal payment\n  ```\n  "paymentType": {\n      "serviceLevel": "INTERNAL",\n      "localInstrument": "INTERNAL",\n      "categoryPurpose": null,\n      "routingPreference": "NONE"\n      }\n   }\n    ```\n- SWIFT payment\n  ```\n  "paymentType": {\n      "serviceLevel": "SDVA",\n      "localInstrument": "SWIFT",\n      "categoryPurpose": null,\n      "routingPreference": "HIGH_PRIORITY"\n      }\n  }\n  ```\n- OTHER payment\n  ```\n  "paymentType": {\n      "serviceLevel": "OTHER",\n      "localInstrument": "OTHER",\n      "categoryPurpose": null,\n      "routingPreference": "NONE"\n     }\n  }\n  ```\n- Proprietary payment (any bank-specific local instrument, only when serviceLevel is OTHER)\n  ```\n  "paymentType": {\n      "serviceLevel": "OTHER",\n      "localInstrument": "NIP",\n      "categoryPurpose": null,\n      "routingPreference": "INSTANT"\n     }\n  }\n  ```\n\n  - `serviceLevel: \'SEPA\' | \'INTERNAL\' | \'SDVA\' | \'OTHER\'`\n    Specifies the service level for the payment\n  - `categoryPurpose?: string`\n    Specifies the category purpose for the payment\n\n  - `localInstrument?: string`\n    Specifies the local instrument for the payment.\nPredefined values: OTHER, SWIFT, INTERNAL, SCT, INST.\nSupports Proprietary value of 1 to 35 characters.\n\n  - `routingPreference?: \'NONE\' | \'HIGH_PRIORITY\' | \'INSTANT\'`\n    Specifies the routing preference for the payment\n\n- `remittanceInformationStructured?: { reference: string; referenceIssuer?: string; referenceType?: string; }`\n  - `reference: string`\n  - `referenceIssuer?: string`\n  - `referenceType?: string`\n\n- `remittanceInformationUnstructured?: string`\n  Unstructured remittance information.\n\n\n- `supplementaryData?: { amkCode?: string; }`\n  Additional information that cannot be captured in the structured elements and/or any other specific block.\n\n  - `amkCode?: string`\n\n- `plmr-mfa-challenge-id?: string`\n\n- `plmr-mfa-signature?: string`\n\n- `plmr-user-action?: boolean`\n\n- `X-Device-Integrity-Token?: string`\n\n- `X-Request-ID?: string`\n\n### Returns\n\n- `{ paymentId: string; paymentStatus: \'ACCC\' | \'RCVD\' | \'RJCT\'; }`\n  Body of the response for a successful payment initiation request.\n\n  - `paymentId: string`\n  - `paymentStatus: \'ACCC\' | \'RCVD\' | \'RJCT\'`\n\n### Example\n\n```typescript\nimport Plumery from \'plumery\';\n\nconst client = new Plumery();\n\nconst payment = await client.parties.payments.create(\'6878951b-256b-4baa-9e81-ad4c577adc4e\', {\n  debtorAccount: { accountId: \'4ec4e5f6-1124-5678-abcd-1234567890ef\', currency: \'EUR\' },\n  instructedAmount: { amount: \'5877.78\', currency: \'EUR\' },\n});\n\nconsole.log(payment);\n```',
    perLanguage: {
      typescript: {
        method: 'client.parties.payments.create',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nconst payment = await client.parties.payments.create('6878951b-256b-4baa-9e81-ad4c577adc4e', {\n  debtorAccount: { accountId: '4ec4e5f6-1124-5678-abcd-1234567890ef', currency: 'EUR' },\n  instructedAmount: { amount: '5877.78', currency: 'EUR' },\n});\n\nconsole.log(payment.paymentId);",
      },
      python: {
        method: 'parties.payments.create',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\npayment = client.parties.payments.create(\n    party_id="6878951b-256b-4baa-9e81-ad4c577adc4e",\n    debtor_account={\n        "account_id": "4ec4e5f6-1124-5678-abcd-1234567890ef",\n        "currency": "EUR",\n    },\n    instructed_amount={\n        "amount": "5877.78",\n        "currency": "EUR",\n    },\n)\nprint(payment.payment_id)',
      },
      java: {
        method: 'parties().payments().create',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.parties.payments.PaymentCreateParams;\nimport com.plumery.api.models.parties.payments.PaymentCreateResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        PaymentCreateParams params = PaymentCreateParams.builder()\n            .partyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n            .debtorAccount(PaymentCreateParams.DebtorAccount.builder()\n                .accountId("4ec4e5f6-1124-5678-abcd-1234567890ef")\n                .currency("EUR")\n                .build())\n            .instructedAmount(PaymentCreateParams.InstructedAmount.builder()\n                .amount("5877.78")\n                .currency("EUR")\n                .build())\n            .build();\n        PaymentCreateResponse payment = client.parties().payments().create(params);\n    }\n}',
      },
      kotlin: {
        method: 'parties().payments().create',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.parties.payments.PaymentCreateParams\nimport com.plumery.api.models.parties.payments.PaymentCreateResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: PaymentCreateParams = PaymentCreateParams.builder()\n        .partyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n        .debtorAccount(PaymentCreateParams.DebtorAccount.builder()\n            .accountId("4ec4e5f6-1124-5678-abcd-1234567890ef")\n            .currency("EUR")\n            .build())\n        .instructedAmount(PaymentCreateParams.InstructedAmount.builder()\n            .amount("5877.78")\n            .currency("EUR")\n            .build())\n        .build()\n    val payment: PaymentCreateResponse = client.parties().payments().create(params)\n}',
      },
      go: {
        method: 'client.Parties.Payments.New',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tpayment, err := client.Parties.Payments.New(\n\t\tcontext.TODO(),\n\t\t"6878951b-256b-4baa-9e81-ad4c577adc4e",\n\t\tplumery.PartyPaymentNewParams{\n\t\t\tDebtorAccount: plumery.F(plumery.PartyPaymentNewParamsDebtorAccount{\n\t\t\t\tAccountID: plumery.F("4ec4e5f6-1124-5678-abcd-1234567890ef"),\n\t\t\t\tCurrency:  plumery.F("EUR"),\n\t\t\t}),\n\t\t\tInstructedAmount: plumery.F(plumery.PartyPaymentNewParamsInstructedAmount{\n\t\t\t\tAmount:   plumery.F("5877.78"),\n\t\t\t\tCurrency: plumery.F("EUR"),\n\t\t\t}),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", payment.PaymentID)\n}\n',
      },
      cli: {
        method: 'payments create',
        example:
          "plumery parties:payments create \\\n  --session 'My Session' \\\n  --party-id 6878951b-256b-4baa-9e81-ad4c577adc4e \\\n  --debtor-account '{accountId: 4ec4e5f6-1124-5678-abcd-1234567890ef, currency: EUR}' \\\n  --instructed-amount \"{amount: '5877.78', currency: EUR}\"",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/parties/$PARTY_ID/payments \\\n    -H \'Content-Type: application/json\' \\\n    -H "Cookie: $SESSION" \\\n    -d \'{\n          "debtorAccount": {\n            "accountId": "4ec4e5f6-1124-5678-abcd-1234567890ef",\n            "currency": "EUR"\n          },\n          "instructedAmount": {\n            "amount": "5877.78",\n            "currency": "EUR"\n          },\n          "counterpartyId": "9857dab5-973b-4bf4-8031-e9baa5e61607",\n          "creditorAgent": "AAAADEBBXXX",\n          "creditorName": "Creditor Name",\n          "paymentMethodId": "494bbc67-387c-4e5a-b625-00287a8fc5cc",\n          "remittanceInformationUnstructured": "Ref Number Merchant"\n        }\'',
      },
    },
  },
  {
    name: 'list',
    endpoint: '/api/v1/parties/{partyId}/payments',
    httpMethod: 'get',
    summary: 'List payments',
    description:
      'Retrieve payments for a specific party filtered by `counterpartyId` or `standingOrderId`.\n',
    stainlessPath: '(resource) parties.payments > (method) list',
    qualified: 'client.parties.payments.list',
    params: [
      'partyId: string;',
      'counterpartyId?: string;',
      'cursor?: string;',
      'limit?: number;',
      'standingOrderId?: string;',
      'plmr-user-action?: boolean;',
    ],
    response:
      "{ items?: { additionalAttributes?: object; counterpartyId?: string; creditorAccount?: object; creditorAddress?: object; creditorAgent?: string; creditorName?: string; debtorAccount?: object; debtorAddress?: object; debtorName?: string; endToEndIdentification?: string; instructedAmount?: object; memberId?: string; paymentId?: string; paymentStatus?: 'ACCC' | 'RCVD' | 'RJCT'; paymentStatusHistory?: object[]; paymentType?: object; rejectionReason?: object; remittanceInformationStructured?: object; remittanceInformationUnstructured?: string; standingOrderId?: string; statusDateTime?: string; supplementaryData?: object; teamId?: string; }[]; nextCursor?: string; }",
    markdown:
      "## list\n\n`client.parties.payments.list(partyId: string, counterpartyId?: string, cursor?: string, limit?: number, standingOrderId?: string, plmr-user-action?: boolean): { items?: object[]; nextCursor?: string; }`\n\n**get** `/api/v1/parties/{partyId}/payments`\n\nRetrieve payments for a specific party filtered by `counterpartyId` or `standingOrderId`.\n\n\n### Parameters\n\n- `partyId: string`\n\n- `counterpartyId?: string`\n  The ID of the counterparty to filter payments.\n\n- `cursor?: string`\n  The cursor is a pointer to the next page of payments. \nIt is returned in the response body of the previous request. \nUse it to retrieve the next page of payments.\n\n\n- `limit?: number`\n  Specifies the number of payments to retrieve.\n\n- `standingOrderId?: string`\n  The ID of the standing order to filter payments.\n\n- `plmr-user-action?: boolean`\n\n### Returns\n\n- `{ items?: { additionalAttributes?: object; counterpartyId?: string; creditorAccount?: { bban?: string; cashAccountType?: string; currency?: string; iban?: string; msisdn?: string; other?: object; }; creditorAddress?: { country: string; buildingName?: string; buildingNumber?: string; countrySubDivision?: string; districtName?: string; floor?: string; postBox?: string; postCode?: string; streetName?: string; suite?: string; townLocationName?: string; townName?: string; }; creditorAgent?: string; creditorName?: string; debtorAccount?: { currency: string; iban: string; }; debtorAddress?: { country: string; buildingName?: string; buildingNumber?: string; countrySubDivision?: string; districtName?: string; floor?: string; postBox?: string; postCode?: string; streetName?: string; suite?: string; townLocationName?: string; townName?: string; }; debtorName?: string; endToEndIdentification?: string; instructedAmount?: { amount: string; currency: string; }; memberId?: string; paymentId?: string; paymentStatus?: 'ACCC' | 'RCVD' | 'RJCT'; paymentStatusHistory?: { paymentStatus?: 'ACCC' | 'RCVD' | 'RJCT'; statusDateTime?: string; }[]; paymentType?: { serviceLevel: 'SEPA' | 'INTERNAL' | 'SDVA' | 'OTHER'; categoryPurpose?: string; localInstrument?: string; routingPreference?: 'NONE' | 'HIGH_PRIORITY' | 'INSTANT'; }; rejectionReason?: { code: string; message: string; }; remittanceInformationStructured?: { reference: string; referenceIssuer?: string; referenceType?: string; }; remittanceInformationUnstructured?: string; standingOrderId?: string; statusDateTime?: string; supplementaryData?: { amkCode?: string; }; teamId?: string; }[]; nextCursor?: string; }`\n\n  - `items?: { additionalAttributes?: object; counterpartyId?: string; creditorAccount?: { bban?: string; cashAccountType?: string; currency?: string; iban?: string; msisdn?: string; other?: { identification: string; issuer?: string; schemeNameCode?: string; schemeNameProprietary?: string; }; }; creditorAddress?: { country: string; buildingName?: string; buildingNumber?: string; countrySubDivision?: string; districtName?: string; floor?: string; postBox?: string; postCode?: string; streetName?: string; suite?: string; townLocationName?: string; townName?: string; }; creditorAgent?: string; creditorName?: string; debtorAccount?: { currency: string; iban: string; }; debtorAddress?: { country: string; buildingName?: string; buildingNumber?: string; countrySubDivision?: string; districtName?: string; floor?: string; postBox?: string; postCode?: string; streetName?: string; suite?: string; townLocationName?: string; townName?: string; }; debtorName?: string; endToEndIdentification?: string; instructedAmount?: { amount: string; currency: string; }; memberId?: string; paymentId?: string; paymentStatus?: 'ACCC' | 'RCVD' | 'RJCT'; paymentStatusHistory?: { paymentStatus?: 'ACCC' | 'RCVD' | 'RJCT'; statusDateTime?: string; }[]; paymentType?: { serviceLevel: 'SEPA' | 'INTERNAL' | 'SDVA' | 'OTHER'; categoryPurpose?: string; localInstrument?: string; routingPreference?: 'NONE' | 'HIGH_PRIORITY' | 'INSTANT'; }; rejectionReason?: { code: string; message: string; }; remittanceInformationStructured?: { reference: string; referenceIssuer?: string; referenceType?: string; }; remittanceInformationUnstructured?: string; standingOrderId?: string; statusDateTime?: string; supplementaryData?: { amkCode?: string; }; teamId?: string; }[]`\n  - `nextCursor?: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst payments = await client.parties.payments.list('6878951b-256b-4baa-9e81-ad4c577adc4e');\n\nconsole.log(payments);\n```",
    perLanguage: {
      typescript: {
        method: 'client.parties.payments.list',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nconst payments = await client.parties.payments.list('6878951b-256b-4baa-9e81-ad4c577adc4e');\n\nconsole.log(payments.items);",
      },
      python: {
        method: 'parties.payments.list',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\npayments = client.parties.payments.list(\n    party_id="6878951b-256b-4baa-9e81-ad4c577adc4e",\n)\nprint(payments.items)',
      },
      java: {
        method: 'parties().payments().list',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.parties.payments.PaymentListParams;\nimport com.plumery.api.models.parties.payments.PaymentListResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        PaymentListResponse payments = client.parties().payments().list("6878951b-256b-4baa-9e81-ad4c577adc4e");\n    }\n}',
      },
      kotlin: {
        method: 'parties().payments().list',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.parties.payments.PaymentListParams\nimport com.plumery.api.models.parties.payments.PaymentListResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val payments: PaymentListResponse = client.parties().payments().list("6878951b-256b-4baa-9e81-ad4c577adc4e")\n}',
      },
      go: {
        method: 'client.Parties.Payments.List',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tpayments, err := client.Parties.Payments.List(\n\t\tcontext.TODO(),\n\t\t"6878951b-256b-4baa-9e81-ad4c577adc4e",\n\t\tplumery.PartyPaymentListParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", payments.Items)\n}\n',
      },
      cli: {
        method: 'payments list',
        example:
          "plumery parties:payments list \\\n  --session 'My Session' \\\n  --party-id 6878951b-256b-4baa-9e81-ad4c577adc4e",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/parties/$PARTY_ID/payments \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'retrieve',
    endpoint: '/api/v1/parties/{partyId}/payments/{paymentId}',
    httpMethod: 'get',
    summary: 'Retrieve Payment Details',
    description: 'Retrieve payment details.\n',
    stainlessPath: '(resource) parties.payments > (method) retrieve',
    qualified: 'client.parties.payments.retrieve',
    params: ['partyId: string;', 'paymentId: string;', 'plmr-user-action?: boolean;'],
    response:
      "{ additionalAttributes?: object; counterpartyId?: string; creditorAccount?: object; creditorAddress?: object; creditorAgent?: string; creditorName?: string; debtorAccount?: object; debtorAddress?: object; debtorName?: string; endToEndIdentification?: string; instructedAmount?: object; memberId?: string; paymentId?: string; paymentStatus?: 'ACCC' | 'RCVD' | 'RJCT'; paymentStatusHistory?: object[]; paymentType?: object; rejectionReason?: object; remittanceInformationStructured?: object; remittanceInformationUnstructured?: string; standingOrderId?: string; statusDateTime?: string; supplementaryData?: object; teamId?: string; }",
    markdown:
      "## retrieve\n\n`client.parties.payments.retrieve(partyId: string, paymentId: string, plmr-user-action?: boolean): { additionalAttributes?: object; counterpartyId?: string; creditorAccount?: object; creditorAddress?: object; creditorAgent?: string; creditorName?: string; debtorAccount?: object; debtorAddress?: object; debtorName?: string; endToEndIdentification?: string; instructedAmount?: object; memberId?: string; paymentId?: string; paymentStatus?: 'ACCC' | 'RCVD' | 'RJCT'; paymentStatusHistory?: object[]; paymentType?: object; rejectionReason?: object; remittanceInformationStructured?: object; remittanceInformationUnstructured?: string; standingOrderId?: string; statusDateTime?: string; supplementaryData?: object; teamId?: string; }`\n\n**get** `/api/v1/parties/{partyId}/payments/{paymentId}`\n\nRetrieve payment details.\n\n\n### Parameters\n\n- `partyId: string`\n\n- `paymentId: string`\n\n- `plmr-user-action?: boolean`\n\n### Returns\n\n- `{ additionalAttributes?: object; counterpartyId?: string; creditorAccount?: { bban?: string; cashAccountType?: string; currency?: string; iban?: string; msisdn?: string; other?: { identification: string; issuer?: string; schemeNameCode?: string; schemeNameProprietary?: string; }; }; creditorAddress?: { country: string; buildingName?: string; buildingNumber?: string; countrySubDivision?: string; districtName?: string; floor?: string; postBox?: string; postCode?: string; streetName?: string; suite?: string; townLocationName?: string; townName?: string; }; creditorAgent?: string; creditorName?: string; debtorAccount?: { currency: string; iban: string; }; debtorAddress?: { country: string; buildingName?: string; buildingNumber?: string; countrySubDivision?: string; districtName?: string; floor?: string; postBox?: string; postCode?: string; streetName?: string; suite?: string; townLocationName?: string; townName?: string; }; debtorName?: string; endToEndIdentification?: string; instructedAmount?: { amount: string; currency: string; }; memberId?: string; paymentId?: string; paymentStatus?: 'ACCC' | 'RCVD' | 'RJCT'; paymentStatusHistory?: { paymentStatus?: 'ACCC' | 'RCVD' | 'RJCT'; statusDateTime?: string; }[]; paymentType?: { serviceLevel: 'SEPA' | 'INTERNAL' | 'SDVA' | 'OTHER'; categoryPurpose?: string; localInstrument?: string; routingPreference?: 'NONE' | 'HIGH_PRIORITY' | 'INSTANT'; }; rejectionReason?: { code: string; message: string; }; remittanceInformationStructured?: { reference: string; referenceIssuer?: string; referenceType?: string; }; remittanceInformationUnstructured?: string; standingOrderId?: string; statusDateTime?: string; supplementaryData?: { amkCode?: string; }; teamId?: string; }`\n\n  - `additionalAttributes?: object`\n  - `counterpartyId?: string`\n  - `creditorAccount?: { bban?: string; cashAccountType?: string; currency?: string; iban?: string; msisdn?: string; other?: { identification: string; issuer?: string; schemeNameCode?: string; schemeNameProprietary?: string; }; }`\n  - `creditorAddress?: { country: string; buildingName?: string; buildingNumber?: string; countrySubDivision?: string; districtName?: string; floor?: string; postBox?: string; postCode?: string; streetName?: string; suite?: string; townLocationName?: string; townName?: string; }`\n  - `creditorAgent?: string`\n  - `creditorName?: string`\n  - `debtorAccount?: { currency: string; iban: string; }`\n  - `debtorAddress?: { country: string; buildingName?: string; buildingNumber?: string; countrySubDivision?: string; districtName?: string; floor?: string; postBox?: string; postCode?: string; streetName?: string; suite?: string; townLocationName?: string; townName?: string; }`\n  - `debtorName?: string`\n  - `endToEndIdentification?: string`\n  - `instructedAmount?: { amount: string; currency: string; }`\n  - `memberId?: string`\n  - `paymentId?: string`\n  - `paymentStatus?: 'ACCC' | 'RCVD' | 'RJCT'`\n  - `paymentStatusHistory?: { paymentStatus?: 'ACCC' | 'RCVD' | 'RJCT'; statusDateTime?: string; }[]`\n  - `paymentType?: { serviceLevel: 'SEPA' | 'INTERNAL' | 'SDVA' | 'OTHER'; categoryPurpose?: string; localInstrument?: string; routingPreference?: 'NONE' | 'HIGH_PRIORITY' | 'INSTANT'; }`\n  - `rejectionReason?: { code: string; message: string; }`\n  - `remittanceInformationStructured?: { reference: string; referenceIssuer?: string; referenceType?: string; }`\n  - `remittanceInformationUnstructured?: string`\n  - `standingOrderId?: string`\n  - `statusDateTime?: string`\n  - `supplementaryData?: { amkCode?: string; }`\n  - `teamId?: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst payment = await client.parties.payments.retrieve('2751d7d9-df79-4412-b4c4-28aaa7075548', { partyId: '6878951b-256b-4baa-9e81-ad4c577adc4e' });\n\nconsole.log(payment);\n```",
    perLanguage: {
      typescript: {
        method: 'client.parties.payments.retrieve',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nconst payment = await client.parties.payments.retrieve('2751d7d9-df79-4412-b4c4-28aaa7075548', {\n  partyId: '6878951b-256b-4baa-9e81-ad4c577adc4e',\n});\n\nconsole.log(payment.additionalAttributes);",
      },
      python: {
        method: 'parties.payments.retrieve',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\npayment = client.parties.payments.retrieve(\n    payment_id="2751d7d9-df79-4412-b4c4-28aaa7075548",\n    party_id="6878951b-256b-4baa-9e81-ad4c577adc4e",\n)\nprint(payment.additional_attributes)',
      },
      java: {
        method: 'parties().payments().retrieve',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.parties.payments.PaymentRetrieveParams;\nimport com.plumery.api.models.parties.payments.PaymentRetrieveResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        PaymentRetrieveParams params = PaymentRetrieveParams.builder()\n            .partyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n            .paymentId("2751d7d9-df79-4412-b4c4-28aaa7075548")\n            .build();\n        PaymentRetrieveResponse payment = client.parties().payments().retrieve(params);\n    }\n}',
      },
      kotlin: {
        method: 'parties().payments().retrieve',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.parties.payments.PaymentRetrieveParams\nimport com.plumery.api.models.parties.payments.PaymentRetrieveResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: PaymentRetrieveParams = PaymentRetrieveParams.builder()\n        .partyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n        .paymentId("2751d7d9-df79-4412-b4c4-28aaa7075548")\n        .build()\n    val payment: PaymentRetrieveResponse = client.parties().payments().retrieve(params)\n}',
      },
      go: {
        method: 'client.Parties.Payments.Get',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tpayment, err := client.Parties.Payments.Get(\n\t\tcontext.TODO(),\n\t\t"6878951b-256b-4baa-9e81-ad4c577adc4e",\n\t\t"2751d7d9-df79-4412-b4c4-28aaa7075548",\n\t\tplumery.PartyPaymentGetParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", payment.AdditionalAttributes)\n}\n',
      },
      cli: {
        method: 'payments retrieve',
        example:
          "plumery parties:payments retrieve \\\n  --session 'My Session' \\\n  --party-id 6878951b-256b-4baa-9e81-ad4c577adc4e \\\n  --payment-id 2751d7d9-df79-4412-b4c4-28aaa7075548",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/parties/$PARTY_ID/payments/$PAYMENT_ID \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'retrieve',
    endpoint: '/api/v1/parties/{partyId}/payments/{paymentId}/status',
    httpMethod: 'get',
    summary: 'Retrieve Payment Execution Status',
    description: 'Retrieve payment execution status.\n',
    stainlessPath: '(resource) parties.payments.status > (method) retrieve',
    qualified: 'client.parties.payments.status.retrieve',
    params: ['partyId: string;', 'paymentId: string;', 'plmr-user-action?: boolean;'],
    response:
      "{ paymentStatus?: 'ACCC' | 'RCVD' | 'RJCT'; paymentStatusHistory?: { paymentStatus?: 'ACCC' | 'RCVD' | 'RJCT'; statusDateTime?: string; }[]; rejectionReason?: { code: string; message: string; }; statusDateTime?: string; }",
    markdown:
      "## retrieve\n\n`client.parties.payments.status.retrieve(partyId: string, paymentId: string, plmr-user-action?: boolean): { paymentStatus?: 'ACCC' | 'RCVD' | 'RJCT'; paymentStatusHistory?: object[]; rejectionReason?: object; statusDateTime?: string; }`\n\n**get** `/api/v1/parties/{partyId}/payments/{paymentId}/status`\n\nRetrieve payment execution status.\n\n\n### Parameters\n\n- `partyId: string`\n\n- `paymentId: string`\n\n- `plmr-user-action?: boolean`\n\n### Returns\n\n- `{ paymentStatus?: 'ACCC' | 'RCVD' | 'RJCT'; paymentStatusHistory?: { paymentStatus?: 'ACCC' | 'RCVD' | 'RJCT'; statusDateTime?: string; }[]; rejectionReason?: { code: string; message: string; }; statusDateTime?: string; }`\n  Body of the response for payment execution status.\n\n  - `paymentStatus?: 'ACCC' | 'RCVD' | 'RJCT'`\n  - `paymentStatusHistory?: { paymentStatus?: 'ACCC' | 'RCVD' | 'RJCT'; statusDateTime?: string; }[]`\n  - `rejectionReason?: { code: string; message: string; }`\n  - `statusDateTime?: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst status = await client.parties.payments.status.retrieve('2751d7d9-df79-4412-b4c4-28aaa7075548', { partyId: '6878951b-256b-4baa-9e81-ad4c577adc4e' });\n\nconsole.log(status);\n```",
    perLanguage: {
      typescript: {
        method: 'client.parties.payments.status.retrieve',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nconst status = await client.parties.payments.status.retrieve(\n  '2751d7d9-df79-4412-b4c4-28aaa7075548',\n  { partyId: '6878951b-256b-4baa-9e81-ad4c577adc4e' },\n);\n\nconsole.log(status.paymentStatus);",
      },
      python: {
        method: 'parties.payments.status.retrieve',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nstatus = client.parties.payments.status.retrieve(\n    payment_id="2751d7d9-df79-4412-b4c4-28aaa7075548",\n    party_id="6878951b-256b-4baa-9e81-ad4c577adc4e",\n)\nprint(status.payment_status)',
      },
      java: {
        method: 'parties().payments().status().retrieve',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.parties.payments.status.StatusRetrieveParams;\nimport com.plumery.api.models.parties.payments.status.StatusRetrieveResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        StatusRetrieveParams params = StatusRetrieveParams.builder()\n            .partyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n            .paymentId("2751d7d9-df79-4412-b4c4-28aaa7075548")\n            .build();\n        StatusRetrieveResponse status = client.parties().payments().status().retrieve(params);\n    }\n}',
      },
      kotlin: {
        method: 'parties().payments().status().retrieve',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.parties.payments.status.StatusRetrieveParams\nimport com.plumery.api.models.parties.payments.status.StatusRetrieveResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: StatusRetrieveParams = StatusRetrieveParams.builder()\n        .partyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n        .paymentId("2751d7d9-df79-4412-b4c4-28aaa7075548")\n        .build()\n    val status: StatusRetrieveResponse = client.parties().payments().status().retrieve(params)\n}',
      },
      go: {
        method: 'client.Parties.Payments.Status.Get',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tstatus, err := client.Parties.Payments.Status.Get(\n\t\tcontext.TODO(),\n\t\t"6878951b-256b-4baa-9e81-ad4c577adc4e",\n\t\t"2751d7d9-df79-4412-b4c4-28aaa7075548",\n\t\tplumery.PartyPaymentStatusGetParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", status.PaymentStatus)\n}\n',
      },
      cli: {
        method: 'status retrieve',
        example:
          "plumery parties:payments:status retrieve \\\n  --session 'My Session' \\\n  --party-id 6878951b-256b-4baa-9e81-ad4c577adc4e \\\n  --payment-id 2751d7d9-df79-4412-b4c4-28aaa7075548",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/parties/$PARTY_ID/payments/$PAYMENT_ID/status \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'create',
    endpoint: '/api/v1/parties/{partyId}/standing-orders',
    httpMethod: 'post',
    summary: 'Create Standing Order',
    description:
      'Created a new standing order.<br>\nThe standing order can be created with either ``counterpartyId`` or counterparty details.<br>\nFor creation with counterpartyId, ``counterpartyId`` field is mandatory.<br>\nFor creation with counterparty details, ``creditorAccount`` and ``creditorName`` are mandatory.<br>\nProviding both ``counterpartyId`` and counterparty details like ``creditorAddress`` will result in 400 Bad request response.\n',
    stainlessPath: '(resource) parties.standing-orders > (method) create',
    qualified: 'client.parties.standingOrders.create',
    params: [
      'partyId: string;',
      'debtorAccount: { accountId: string; currency: string; };',
      'instructedAmount: { amount: string; currency: string; };',
      'additionalAttributes?: object;',
      'counterpartyId?: string;',
      'creditorAccount?: { bban?: string; cashAccountType?: string; currency?: string; iban?: string; msisdn?: string; other?: { identification: string; issuer?: string; schemeNameCode?: string; schemeNameProprietary?: string; }; };',
      'creditorAddress?: { country: string; buildingName?: string; buildingNumber?: string; countrySubDivision?: string; districtName?: string; floor?: string; postBox?: string; postCode?: string; streetName?: string; suite?: string; townLocationName?: string; townName?: string; };',
      'creditorAgent?: string;',
      'creditorName?: string;',
      'debtorAddress?: { country: string; buildingName?: string; buildingNumber?: string; countrySubDivision?: string; districtName?: string; floor?: string; postBox?: string; postCode?: string; streetName?: string; suite?: string; townLocationName?: string; townName?: string; };',
      'endToEndIdentification?: string;',
      'paymentMethodId?: string;',
      "paymentType?: { serviceLevel: 'SEPA' | 'INTERNAL' | 'SDVA' | 'OTHER'; categoryPurpose?: string; localInstrument?: string; routingPreference?: 'NONE' | 'HIGH_PRIORITY' | 'INSTANT'; };",
      'remittanceInformationStructured?: { reference: string; referenceIssuer?: string; referenceType?: string; };',
      'remittanceInformationUnstructured?: string;',
      'supplementaryData?: { amkCode?: string; };',
      'plmr-mfa-challenge-id?: string;',
      'plmr-mfa-signature?: string;',
      'plmr-user-action?: boolean;',
      'X-Device-Integrity-Token?: string;',
      'X-Request-ID?: string;',
    ],
    response: "{ standingOrderId: string; standingOrderStatus: 'PENDING' | 'ACTIVE' | 'PAUSED'; }",
    markdown:
      '## create\n\n`client.parties.standingOrders.create(partyId: string, debtorAccount: { accountId: string; currency: string; }, instructedAmount: { amount: string; currency: string; }, additionalAttributes?: object, counterpartyId?: string, creditorAccount?: { bban?: string; cashAccountType?: string; currency?: string; iban?: string; msisdn?: string; other?: { identification: string; issuer?: string; schemeNameCode?: string; schemeNameProprietary?: string; }; }, creditorAddress?: { country: string; buildingName?: string; buildingNumber?: string; countrySubDivision?: string; districtName?: string; floor?: string; postBox?: string; postCode?: string; streetName?: string; suite?: string; townLocationName?: string; townName?: string; }, creditorAgent?: string, creditorName?: string, debtorAddress?: { country: string; buildingName?: string; buildingNumber?: string; countrySubDivision?: string; districtName?: string; floor?: string; postBox?: string; postCode?: string; streetName?: string; suite?: string; townLocationName?: string; townName?: string; }, endToEndIdentification?: string, paymentMethodId?: string, paymentType?: { serviceLevel: \'SEPA\' | \'INTERNAL\' | \'SDVA\' | \'OTHER\'; categoryPurpose?: string; localInstrument?: string; routingPreference?: \'NONE\' | \'HIGH_PRIORITY\' | \'INSTANT\'; }, remittanceInformationStructured?: { reference: string; referenceIssuer?: string; referenceType?: string; }, remittanceInformationUnstructured?: string, supplementaryData?: { amkCode?: string; }, plmr-mfa-challenge-id?: string, plmr-mfa-signature?: string, plmr-user-action?: boolean, X-Device-Integrity-Token?: string, X-Request-ID?: string): { standingOrderId: string; standingOrderStatus: \'PENDING\' | \'ACTIVE\' | \'PAUSED\'; }`\n\n**post** `/api/v1/parties/{partyId}/standing-orders`\n\nCreated a new standing order.<br>\nThe standing order can be created with either ``counterpartyId`` or counterparty details.<br>\nFor creation with counterpartyId, ``counterpartyId`` field is mandatory.<br>\nFor creation with counterparty details, ``creditorAccount`` and ``creditorName`` are mandatory.<br>\nProviding both ``counterpartyId`` and counterparty details like ``creditorAddress`` will result in 400 Bad request response.\n\n\n### Parameters\n\n- `partyId: string`\n\n- `debtorAccount: { accountId: string; currency: string; }`\n  Details of the account from which the amount will be debited.\n  - `accountId: string`\n    The ID of the account that will be debited.\n  - `currency: string`\n    ISO 4217 Alpha 3 currency code.\n\n\n- `instructedAmount: { amount: string; currency: string; }`\n  - `amount: string`\n    The amount given with fractional digits, where fractions must be compliant to the currency definition.\nUp to 14 significant figures. Negative amounts are signed by minus.\nThe decimal separator is a dot.\n\n**Example:**\nValid representations for EUR with up to two decimals are:\n\n  * 1056\n  * 5768.2\n  * -1.50\n  * 5877.78\n\n  - `currency: string`\n    ISO 4217 Alpha 3 currency code.\n\n\n- `additionalAttributes?: object`\n  Free-form map of non-standard attributes forwarded with the payment initiation request.\nValues are passed through unchanged to the payment order command for downstream consumers.\n\n\n- `counterpartyId?: string`\n  The ID of the counterparty.\n\n\n- `creditorAccount?: { bban?: string; cashAccountType?: string; currency?: string; iban?: string; msisdn?: string; other?: { identification: string; issuer?: string; schemeNameCode?: string; schemeNameProprietary?: string; }; }`\n  Reference to a creditor account.\n\n  - `bban?: string`\n    Basic Bank Account Number (BBAN) Identifier.\n  - `cashAccountType?: string`\n    ExternalCashAccountType1Code from ISO 20022.\n  - `currency?: string`\n    ISO 4217 Alpha 3 currency code.\n\n  - `iban?: string`\n    IBAN of an account.\n  - `msisdn?: string`\n    Mobile phone number.\n  - `other?: { identification: string; issuer?: string; schemeNameCode?: string; schemeNameProprietary?: string; }`\n    In cases where the specifically defined criteria (IBAN, BBAN, MSISDN) are not provided to identify an instance of the respective account type (e.g. a savings account), the ASPSP shall include a proprietary ID of the respective account that uniquely identifies the account for this ASPSP.\n\n- `creditorAddress?: { country: string; buildingName?: string; buildingNumber?: string; countrySubDivision?: string; districtName?: string; floor?: string; postBox?: string; postCode?: string; streetName?: string; suite?: string; townLocationName?: string; townName?: string; }`\n  - `country: string`\n    Nation with its own government. ISO 3166, Alpha-2 code\n\n  - `buildingName?: string`\n    Name of the building or house\n\n  - `buildingNumber?: string`\n    Number that identifies the position of a building on a street\n\n  - `countrySubDivision?: string`\n    Identifies a subdivision of a country such as state, region, county\n\n  - `districtName?: string`\n    Identifies a subdivision within a country sub-division\n\n  - `floor?: string`\n    Floor or storey within a building\n\n  - `postBox?: string`\n    Numbered box in a post office, assigned to a person or organisation, where letters are kept until called for\n\n  - `postCode?: string`\n    Identifier consisting of a group of letters and/or numbers that is added to a postal address to assist the sorting of mail\n\n  - `streetName?: string`\n    Name of a street or thoroughfare\n\n  - `suite?: string`\n    Building room number\n\n  - `townLocationName?: string`\n    Specific location name within the town\n\n  - `townName?: string`\n    Name of a built-up area, with defined boundaries, and a local government\n\n\n- `creditorAgent?: string`\n  BICFI\n\n\n- `creditorName?: string`\n  Creditor name.\n\n- `debtorAddress?: { country: string; buildingName?: string; buildingNumber?: string; countrySubDivision?: string; districtName?: string; floor?: string; postBox?: string; postCode?: string; streetName?: string; suite?: string; townLocationName?: string; townName?: string; }`\n  - `country: string`\n    Nation with its own government. ISO 3166, Alpha-2 code\n\n  - `buildingName?: string`\n    Name of the building or house\n\n  - `buildingNumber?: string`\n    Number that identifies the position of a building on a street\n\n  - `countrySubDivision?: string`\n    Identifies a subdivision of a country such as state, region, county\n\n  - `districtName?: string`\n    Identifies a subdivision within a country sub-division\n\n  - `floor?: string`\n    Floor or storey within a building\n\n  - `postBox?: string`\n    Numbered box in a post office, assigned to a person or organisation, where letters are kept until called for\n\n  - `postCode?: string`\n    Identifier consisting of a group of letters and/or numbers that is added to a postal address to assist the sorting of mail\n\n  - `streetName?: string`\n    Name of a street or thoroughfare\n\n  - `suite?: string`\n    Building room number\n\n  - `townLocationName?: string`\n    Specific location name within the town\n\n  - `townName?: string`\n    Name of a built-up area, with defined boundaries, and a local government\n\n\n- `endToEndIdentification?: string`\n\n- `paymentMethodId?: string`\n  The Id of the payment method.\n\n\n- `paymentType?: { serviceLevel: \'SEPA\' | \'INTERNAL\' | \'SDVA\' | \'OTHER\'; categoryPurpose?: string; localInstrument?: string; routingPreference?: \'NONE\' | \'HIGH_PRIORITY\' | \'INSTANT\'; }`\n  Specifies the payment type.\nAllowed values:\n- SEPA Instant payment          \n  ```\n  "paymentType": {\n      "serviceLevel": "SEPA",\n      "localInstrument": "INST",\n      "categoryPurpose": null,\n      "routingPreference": "INSTANT"\n     }\n  }\n  ```\n- SEPA Regular payment\n  ```\n  "paymentType": {\n      "serviceLevel": "SEPA",\n      "localInstrument": "SCT",\n      "categoryPurpose": null,\n      "routingPreference": "NONE"\n    }\n  }\n  ```\n- SEPA Any payment\n  ```\n  "paymentType": {\n      "serviceLevel": "SEPA",\n      "localInstrument": null,\n      "categoryPurpose": null,\n      "routingPreference": "NONE"\n     }\n  }\n  ```\n- Internal payment\n  ```\n  "paymentType": {\n      "serviceLevel": "INTERNAL",\n      "localInstrument": "INTERNAL",\n      "categoryPurpose": null,\n      "routingPreference": "NONE"\n      }\n   }\n    ```\n- SWIFT payment\n  ```\n  "paymentType": {\n      "serviceLevel": "SDVA",\n      "localInstrument": "SWIFT",\n      "categoryPurpose": null,\n      "routingPreference": "HIGH_PRIORITY"\n      }\n  }\n  ```\n- OTHER payment\n  ```\n  "paymentType": {\n      "serviceLevel": "OTHER",\n      "localInstrument": "OTHER",\n      "categoryPurpose": null,\n      "routingPreference": "NONE"\n     }\n  }\n  ```\n- Proprietary payment (any bank-specific local instrument, only when serviceLevel is OTHER)\n  ```\n  "paymentType": {\n      "serviceLevel": "OTHER",\n      "localInstrument": "NIP",\n      "categoryPurpose": null,\n      "routingPreference": "INSTANT"\n     }\n  }\n  ```\n\n  - `serviceLevel: \'SEPA\' | \'INTERNAL\' | \'SDVA\' | \'OTHER\'`\n    Specifies the service level for the payment\n  - `categoryPurpose?: string`\n    Specifies the category purpose for the payment\n\n  - `localInstrument?: string`\n    Specifies the local instrument for the payment.\nPredefined values: OTHER, SWIFT, INTERNAL, SCT, INST.\nSupports Proprietary value of 1 to 35 characters.\n\n  - `routingPreference?: \'NONE\' | \'HIGH_PRIORITY\' | \'INSTANT\'`\n    Specifies the routing preference for the payment\n\n- `remittanceInformationStructured?: { reference: string; referenceIssuer?: string; referenceType?: string; }`\n  - `reference: string`\n  - `referenceIssuer?: string`\n  - `referenceType?: string`\n\n- `remittanceInformationUnstructured?: string`\n  Unstructured remittance information.\n\n\n- `supplementaryData?: { amkCode?: string; }`\n  Additional information that cannot be captured in the structured elements and/or any other specific block.\n\n  - `amkCode?: string`\n\n- `plmr-mfa-challenge-id?: string`\n\n- `plmr-mfa-signature?: string`\n\n- `plmr-user-action?: boolean`\n\n- `X-Device-Integrity-Token?: string`\n\n- `X-Request-ID?: string`\n\n### Returns\n\n- `{ standingOrderId: string; standingOrderStatus: \'PENDING\' | \'ACTIVE\' | \'PAUSED\'; }`\n  Body of the response for a successful standing order initiation request.\n\n  - `standingOrderId: string`\n  - `standingOrderStatus: \'PENDING\' | \'ACTIVE\' | \'PAUSED\'`\n\n### Example\n\n```typescript\nimport Plumery from \'plumery\';\n\nconst client = new Plumery();\n\nconst standingOrder = await client.parties.standingOrders.create(\'6878951b-256b-4baa-9e81-ad4c577adc4e\', {\n  debtorAccount: { accountId: \'4ec4e5f6-1124-5678-abcd-1234567890ef\', currency: \'EUR\' },\n  instructedAmount: { amount: \'5877.78\', currency: \'EUR\' },\n});\n\nconsole.log(standingOrder);\n```',
    perLanguage: {
      typescript: {
        method: 'client.parties.standingOrders.create',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nconst standingOrder = await client.parties.standingOrders.create(\n  '6878951b-256b-4baa-9e81-ad4c577adc4e',\n  {\n    debtorAccount: { accountId: '4ec4e5f6-1124-5678-abcd-1234567890ef', currency: 'EUR' },\n    instructedAmount: { amount: '5877.78', currency: 'EUR' },\n  },\n);\n\nconsole.log(standingOrder.standingOrderId);",
      },
      python: {
        method: 'parties.standing_orders.create',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nstanding_order = client.parties.standing_orders.create(\n    party_id="6878951b-256b-4baa-9e81-ad4c577adc4e",\n    debtor_account={\n        "account_id": "4ec4e5f6-1124-5678-abcd-1234567890ef",\n        "currency": "EUR",\n    },\n    instructed_amount={\n        "amount": "5877.78",\n        "currency": "EUR",\n    },\n)\nprint(standing_order.standing_order_id)',
      },
      java: {
        method: 'parties().standingOrders().create',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.parties.standingorders.StandingOrderCreateParams;\nimport com.plumery.api.models.parties.standingorders.StandingOrderCreateResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        StandingOrderCreateParams params = StandingOrderCreateParams.builder()\n            .partyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n            .debtorAccount(StandingOrderCreateParams.DebtorAccount.builder()\n                .accountId("4ec4e5f6-1124-5678-abcd-1234567890ef")\n                .currency("EUR")\n                .build())\n            .instructedAmount(StandingOrderCreateParams.InstructedAmount.builder()\n                .amount("5877.78")\n                .currency("EUR")\n                .build())\n            .build();\n        StandingOrderCreateResponse standingOrder = client.parties().standingOrders().create(params);\n    }\n}',
      },
      kotlin: {
        method: 'parties().standingOrders().create',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.parties.standingorders.StandingOrderCreateParams\nimport com.plumery.api.models.parties.standingorders.StandingOrderCreateResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: StandingOrderCreateParams = StandingOrderCreateParams.builder()\n        .partyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n        .debtorAccount(StandingOrderCreateParams.DebtorAccount.builder()\n            .accountId("4ec4e5f6-1124-5678-abcd-1234567890ef")\n            .currency("EUR")\n            .build())\n        .instructedAmount(StandingOrderCreateParams.InstructedAmount.builder()\n            .amount("5877.78")\n            .currency("EUR")\n            .build())\n        .build()\n    val standingOrder: StandingOrderCreateResponse = client.parties().standingOrders().create(params)\n}',
      },
      go: {
        method: 'client.Parties.StandingOrders.New',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tstandingOrder, err := client.Parties.StandingOrders.New(\n\t\tcontext.TODO(),\n\t\t"6878951b-256b-4baa-9e81-ad4c577adc4e",\n\t\tplumery.PartyStandingOrderNewParams{\n\t\t\tDebtorAccount: plumery.F(plumery.PartyStandingOrderNewParamsDebtorAccount{\n\t\t\t\tAccountID: plumery.F("4ec4e5f6-1124-5678-abcd-1234567890ef"),\n\t\t\t\tCurrency:  plumery.F("EUR"),\n\t\t\t}),\n\t\t\tInstructedAmount: plumery.F(plumery.PartyStandingOrderNewParamsInstructedAmount{\n\t\t\t\tAmount:   plumery.F("5877.78"),\n\t\t\t\tCurrency: plumery.F("EUR"),\n\t\t\t}),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", standingOrder.StandingOrderID)\n}\n',
      },
      cli: {
        method: 'standing-orders create',
        example:
          "plumery parties:standing-orders create \\\n  --session 'My Session' \\\n  --party-id 6878951b-256b-4baa-9e81-ad4c577adc4e \\\n  --debtor-account '{accountId: 4ec4e5f6-1124-5678-abcd-1234567890ef, currency: EUR}' \\\n  --instructed-amount \"{amount: '5877.78', currency: EUR}\"",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/parties/$PARTY_ID/standing-orders \\\n    -H \'Content-Type: application/json\' \\\n    -H "Cookie: $SESSION" \\\n    -d \'{\n          "debtorAccount": {\n            "accountId": "4ec4e5f6-1124-5678-abcd-1234567890ef",\n            "currency": "EUR"\n          },\n          "instructedAmount": {\n            "amount": "5877.78",\n            "currency": "EUR"\n          },\n          "counterpartyId": "9857dab5-973b-4bf4-8031-e9baa5e61607",\n          "creditorAgent": "AAAADEBBXXX",\n          "creditorName": "Creditor Name",\n          "paymentMethodId": "494bbc67-387c-4e5a-b625-00287a8fc5cc",\n          "remittanceInformationUnstructured": "Ref Number Merchant"\n        }\'',
      },
    },
  },
  {
    name: 'list',
    endpoint: '/api/v1/parties/{partyId}/standing-orders',
    httpMethod: 'get',
    summary: 'Get All Standing Orders',
    description: 'Retrieve all standing orders\n',
    stainlessPath: '(resource) parties.standing-orders > (method) list',
    qualified: 'client.parties.standingOrders.list',
    params: ['partyId: string;', 'plmr-user-action?: boolean;'],
    response:
      "{ standingOrders?: { additionalAttributes?: object; creditorAccount?: object; creditorAddress?: object; creditorAgent?: string; creditorName?: string; debtorAccount?: object; endToEndIdentification?: string; executionSchedule?: object; instructedAmount?: object; nextExecutionDate?: string; paymentType?: object; remittanceInformationStructured?: object; remittanceInformationUnstructured?: string; standingOrderId?: string; standingOrderStatus?: 'PENDING' | 'ACTIVE' | 'PAUSED'; supplementaryData?: object; }[]; }",
    markdown:
      "## list\n\n`client.parties.standingOrders.list(partyId: string, plmr-user-action?: boolean): { standingOrders?: object[]; }`\n\n**get** `/api/v1/parties/{partyId}/standing-orders`\n\nRetrieve all standing orders\n\n\n### Parameters\n\n- `partyId: string`\n\n- `plmr-user-action?: boolean`\n\n### Returns\n\n- `{ standingOrders?: { additionalAttributes?: object; creditorAccount?: { bban?: string; cashAccountType?: string; currency?: string; iban?: string; msisdn?: string; other?: object; }; creditorAddress?: { country: string; buildingName?: string; buildingNumber?: string; countrySubDivision?: string; districtName?: string; floor?: string; postBox?: string; postCode?: string; streetName?: string; suite?: string; townLocationName?: string; townName?: string; }; creditorAgent?: string; creditorName?: string; debtorAccount?: { accountId: string; currency: string; }; endToEndIdentification?: string; executionSchedule?: { frequency: 'ONE_TIME' | 'DAILY' | 'WEEKLY' | 'MONTHLY' | 'YEARLY' | 'CUSTOM'; startDate: string; customFrequency?: object; endDate?: string; totalNumberOfExecutions?: number; }; instructedAmount?: { amount: string; currency: string; }; nextExecutionDate?: string; paymentType?: { serviceLevel: 'SEPA' | 'INTERNAL' | 'SDVA' | 'OTHER'; categoryPurpose?: string; localInstrument?: string; routingPreference?: 'NONE' | 'HIGH_PRIORITY' | 'INSTANT'; }; remittanceInformationStructured?: { reference: string; referenceIssuer?: string; referenceType?: string; }; remittanceInformationUnstructured?: string; standingOrderId?: string; standingOrderStatus?: 'PENDING' | 'ACTIVE' | 'PAUSED'; supplementaryData?: { amkCode?: string; }; }[]; }`\n  Standing orders associated with a party\n\n\n  - `standingOrders?: { additionalAttributes?: object; creditorAccount?: { bban?: string; cashAccountType?: string; currency?: string; iban?: string; msisdn?: string; other?: { identification: string; issuer?: string; schemeNameCode?: string; schemeNameProprietary?: string; }; }; creditorAddress?: { country: string; buildingName?: string; buildingNumber?: string; countrySubDivision?: string; districtName?: string; floor?: string; postBox?: string; postCode?: string; streetName?: string; suite?: string; townLocationName?: string; townName?: string; }; creditorAgent?: string; creditorName?: string; debtorAccount?: { accountId: string; currency: string; }; endToEndIdentification?: string; executionSchedule?: { frequency: 'ONE_TIME' | 'DAILY' | 'WEEKLY' | 'MONTHLY' | 'YEARLY' | 'CUSTOM'; startDate: string; customFrequency?: { number: number; period: 'DAYS' | 'WEEKS' | 'MONTHS' | 'YEARS'; }; endDate?: string; totalNumberOfExecutions?: number; }; instructedAmount?: { amount: string; currency: string; }; nextExecutionDate?: string; paymentType?: { serviceLevel: 'SEPA' | 'INTERNAL' | 'SDVA' | 'OTHER'; categoryPurpose?: string; localInstrument?: string; routingPreference?: 'NONE' | 'HIGH_PRIORITY' | 'INSTANT'; }; remittanceInformationStructured?: { reference: string; referenceIssuer?: string; referenceType?: string; }; remittanceInformationUnstructured?: string; standingOrderId?: string; standingOrderStatus?: 'PENDING' | 'ACTIVE' | 'PAUSED'; supplementaryData?: { amkCode?: string; }; }[]`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst standingOrders = await client.parties.standingOrders.list('6878951b-256b-4baa-9e81-ad4c577adc4e');\n\nconsole.log(standingOrders);\n```",
    perLanguage: {
      typescript: {
        method: 'client.parties.standingOrders.list',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nconst standingOrders = await client.parties.standingOrders.list(\n  '6878951b-256b-4baa-9e81-ad4c577adc4e',\n);\n\nconsole.log(standingOrders.standingOrders);",
      },
      python: {
        method: 'parties.standing_orders.list',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nstanding_orders = client.parties.standing_orders.list(\n    party_id="6878951b-256b-4baa-9e81-ad4c577adc4e",\n)\nprint(standing_orders.standing_orders)',
      },
      java: {
        method: 'parties().standingOrders().list',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.parties.standingorders.StandingOrderListParams;\nimport com.plumery.api.models.parties.standingorders.StandingOrderListResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        StandingOrderListResponse standingOrders = client.parties().standingOrders().list("6878951b-256b-4baa-9e81-ad4c577adc4e");\n    }\n}',
      },
      kotlin: {
        method: 'parties().standingOrders().list',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.parties.standingorders.StandingOrderListParams\nimport com.plumery.api.models.parties.standingorders.StandingOrderListResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val standingOrders: StandingOrderListResponse = client.parties().standingOrders().list("6878951b-256b-4baa-9e81-ad4c577adc4e")\n}',
      },
      go: {
        method: 'client.Parties.StandingOrders.List',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tstandingOrders, err := client.Parties.StandingOrders.List(\n\t\tcontext.TODO(),\n\t\t"6878951b-256b-4baa-9e81-ad4c577adc4e",\n\t\tplumery.PartyStandingOrderListParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", standingOrders.StandingOrders)\n}\n',
      },
      cli: {
        method: 'standing-orders list',
        example:
          "plumery parties:standing-orders list \\\n  --session 'My Session' \\\n  --party-id 6878951b-256b-4baa-9e81-ad4c577adc4e",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/parties/$PARTY_ID/standing-orders \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'retrieve',
    endpoint: '/api/v1/parties/{partyId}/standing-orders/{standingOrderId}',
    httpMethod: 'get',
    summary: 'Get Standing Order',
    description: 'Retrieve a standing order by ID\n',
    stainlessPath: '(resource) parties.standing-orders > (method) retrieve',
    qualified: 'client.parties.standingOrders.retrieve',
    params: ['partyId: string;', 'standingOrderId: string;', 'plmr-user-action?: boolean;'],
    response:
      "{ additionalAttributes?: object; creditorAccount?: object; creditorAddress?: object; creditorAgent?: string; creditorName?: string; debtorAccount?: object; endToEndIdentification?: string; executionSchedule?: object; instructedAmount?: object; nextExecutionDate?: string; paymentType?: object; remittanceInformationStructured?: object; remittanceInformationUnstructured?: string; standingOrderId?: string; standingOrderStatus?: 'PENDING' | 'ACTIVE' | 'PAUSED'; supplementaryData?: object; }",
    markdown:
      "## retrieve\n\n`client.parties.standingOrders.retrieve(partyId: string, standingOrderId: string, plmr-user-action?: boolean): { additionalAttributes?: object; creditorAccount?: object; creditorAddress?: object; creditorAgent?: string; creditorName?: string; debtorAccount?: object; endToEndIdentification?: string; executionSchedule?: object; instructedAmount?: object; nextExecutionDate?: string; paymentType?: object; remittanceInformationStructured?: object; remittanceInformationUnstructured?: string; standingOrderId?: string; standingOrderStatus?: 'PENDING' | 'ACTIVE' | 'PAUSED'; supplementaryData?: object; }`\n\n**get** `/api/v1/parties/{partyId}/standing-orders/{standingOrderId}`\n\nRetrieve a standing order by ID\n\n\n### Parameters\n\n- `partyId: string`\n\n- `standingOrderId: string`\n\n- `plmr-user-action?: boolean`\n\n### Returns\n\n- `{ additionalAttributes?: object; creditorAccount?: { bban?: string; cashAccountType?: string; currency?: string; iban?: string; msisdn?: string; other?: { identification: string; issuer?: string; schemeNameCode?: string; schemeNameProprietary?: string; }; }; creditorAddress?: { country: string; buildingName?: string; buildingNumber?: string; countrySubDivision?: string; districtName?: string; floor?: string; postBox?: string; postCode?: string; streetName?: string; suite?: string; townLocationName?: string; townName?: string; }; creditorAgent?: string; creditorName?: string; debtorAccount?: { accountId: string; currency: string; }; endToEndIdentification?: string; executionSchedule?: { frequency: 'ONE_TIME' | 'DAILY' | 'WEEKLY' | 'MONTHLY' | 'YEARLY' | 'CUSTOM'; startDate: string; customFrequency?: { number: number; period: 'DAYS' | 'WEEKS' | 'MONTHS' | 'YEARS'; }; endDate?: string; totalNumberOfExecutions?: number; }; instructedAmount?: { amount: string; currency: string; }; nextExecutionDate?: string; paymentType?: { serviceLevel: 'SEPA' | 'INTERNAL' | 'SDVA' | 'OTHER'; categoryPurpose?: string; localInstrument?: string; routingPreference?: 'NONE' | 'HIGH_PRIORITY' | 'INSTANT'; }; remittanceInformationStructured?: { reference: string; referenceIssuer?: string; referenceType?: string; }; remittanceInformationUnstructured?: string; standingOrderId?: string; standingOrderStatus?: 'PENDING' | 'ACTIVE' | 'PAUSED'; supplementaryData?: { amkCode?: string; }; }`\n  Details of a standing order\n\n  - `additionalAttributes?: object`\n  - `creditorAccount?: { bban?: string; cashAccountType?: string; currency?: string; iban?: string; msisdn?: string; other?: { identification: string; issuer?: string; schemeNameCode?: string; schemeNameProprietary?: string; }; }`\n  - `creditorAddress?: { country: string; buildingName?: string; buildingNumber?: string; countrySubDivision?: string; districtName?: string; floor?: string; postBox?: string; postCode?: string; streetName?: string; suite?: string; townLocationName?: string; townName?: string; }`\n  - `creditorAgent?: string`\n  - `creditorName?: string`\n  - `debtorAccount?: { accountId: string; currency: string; }`\n  - `endToEndIdentification?: string`\n  - `executionSchedule?: { frequency: 'ONE_TIME' | 'DAILY' | 'WEEKLY' | 'MONTHLY' | 'YEARLY' | 'CUSTOM'; startDate: string; customFrequency?: { number: number; period: 'DAYS' | 'WEEKS' | 'MONTHS' | 'YEARS'; }; endDate?: string; totalNumberOfExecutions?: number; }`\n  - `instructedAmount?: { amount: string; currency: string; }`\n  - `nextExecutionDate?: string`\n  - `paymentType?: { serviceLevel: 'SEPA' | 'INTERNAL' | 'SDVA' | 'OTHER'; categoryPurpose?: string; localInstrument?: string; routingPreference?: 'NONE' | 'HIGH_PRIORITY' | 'INSTANT'; }`\n  - `remittanceInformationStructured?: { reference: string; referenceIssuer?: string; referenceType?: string; }`\n  - `remittanceInformationUnstructured?: string`\n  - `standingOrderId?: string`\n  - `standingOrderStatus?: 'PENDING' | 'ACTIVE' | 'PAUSED'`\n  - `supplementaryData?: { amkCode?: string; }`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst standingOrder = await client.parties.standingOrders.retrieve('2751d7d9-df79-4412-b4c4-28aaa7075548', { partyId: '6878951b-256b-4baa-9e81-ad4c577adc4e' });\n\nconsole.log(standingOrder);\n```",
    perLanguage: {
      typescript: {
        method: 'client.parties.standingOrders.retrieve',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nconst standingOrder = await client.parties.standingOrders.retrieve(\n  '2751d7d9-df79-4412-b4c4-28aaa7075548',\n  { partyId: '6878951b-256b-4baa-9e81-ad4c577adc4e' },\n);\n\nconsole.log(standingOrder.additionalAttributes);",
      },
      python: {
        method: 'parties.standing_orders.retrieve',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nstanding_order = client.parties.standing_orders.retrieve(\n    standing_order_id="2751d7d9-df79-4412-b4c4-28aaa7075548",\n    party_id="6878951b-256b-4baa-9e81-ad4c577adc4e",\n)\nprint(standing_order.additional_attributes)',
      },
      java: {
        method: 'parties().standingOrders().retrieve',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.parties.standingorders.StandingOrderRetrieveParams;\nimport com.plumery.api.models.parties.standingorders.StandingOrderRetrieveResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        StandingOrderRetrieveParams params = StandingOrderRetrieveParams.builder()\n            .partyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n            .standingOrderId("2751d7d9-df79-4412-b4c4-28aaa7075548")\n            .build();\n        StandingOrderRetrieveResponse standingOrder = client.parties().standingOrders().retrieve(params);\n    }\n}',
      },
      kotlin: {
        method: 'parties().standingOrders().retrieve',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.parties.standingorders.StandingOrderRetrieveParams\nimport com.plumery.api.models.parties.standingorders.StandingOrderRetrieveResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: StandingOrderRetrieveParams = StandingOrderRetrieveParams.builder()\n        .partyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n        .standingOrderId("2751d7d9-df79-4412-b4c4-28aaa7075548")\n        .build()\n    val standingOrder: StandingOrderRetrieveResponse = client.parties().standingOrders().retrieve(params)\n}',
      },
      go: {
        method: 'client.Parties.StandingOrders.Get',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tstandingOrder, err := client.Parties.StandingOrders.Get(\n\t\tcontext.TODO(),\n\t\t"6878951b-256b-4baa-9e81-ad4c577adc4e",\n\t\t"2751d7d9-df79-4412-b4c4-28aaa7075548",\n\t\tplumery.PartyStandingOrderGetParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", standingOrder.AdditionalAttributes)\n}\n',
      },
      cli: {
        method: 'standing-orders retrieve',
        example:
          "plumery parties:standing-orders retrieve \\\n  --session 'My Session' \\\n  --party-id 6878951b-256b-4baa-9e81-ad4c577adc4e \\\n  --standing-order-id 2751d7d9-df79-4412-b4c4-28aaa7075548",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/parties/$PARTY_ID/standing-orders/$STANDING_ORDER_ID \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'update',
    endpoint: '/api/v1/parties/{partyId}/standing-orders/{standingOrderId}:update',
    httpMethod: 'post',
    summary: 'Update Standing Order',
    description: 'Update a standing order.\n',
    stainlessPath: '(resource) parties.standing-orders > (method) update',
    qualified: 'client.parties.standingOrders.update',
    params: [
      'partyId: string;',
      'standingOrderId: string;',
      'debtorAccount: { accountId: string; currency: string; };',
      'instructedAmount: { amount: string; currency: string; };',
      'additionalAttributes?: object;',
      'creditorAccount?: { bban?: string; cashAccountType?: string; currency?: string; iban?: string; msisdn?: string; other?: { identification: string; issuer?: string; schemeNameCode?: string; schemeNameProprietary?: string; }; };',
      'creditorAddress?: { country: string; buildingName?: string; buildingNumber?: string; countrySubDivision?: string; districtName?: string; floor?: string; postBox?: string; postCode?: string; streetName?: string; suite?: string; townLocationName?: string; townName?: string; };',
      'creditorAgent?: string;',
      'creditorName?: string;',
      'debtorAddress?: { country: string; buildingName?: string; buildingNumber?: string; countrySubDivision?: string; districtName?: string; floor?: string; postBox?: string; postCode?: string; streetName?: string; suite?: string; townLocationName?: string; townName?: string; };',
      'endToEndIdentification?: string;',
      "paymentType?: { serviceLevel: 'SEPA' | 'INTERNAL' | 'SDVA' | 'OTHER'; categoryPurpose?: string; localInstrument?: string; routingPreference?: 'NONE' | 'HIGH_PRIORITY' | 'INSTANT'; };",
      'remittanceInformationStructured?: { reference: string; referenceIssuer?: string; referenceType?: string; };',
      'remittanceInformationUnstructured?: string;',
      'supplementaryData?: { amkCode?: string; };',
      'plmr-user-action?: boolean;',
      'X-Request-ID?: string;',
    ],
    markdown:
      '## update\n\n`client.parties.standingOrders.update(partyId: string, standingOrderId: string, debtorAccount: { accountId: string; currency: string; }, instructedAmount: { amount: string; currency: string; }, additionalAttributes?: object, creditorAccount?: { bban?: string; cashAccountType?: string; currency?: string; iban?: string; msisdn?: string; other?: { identification: string; issuer?: string; schemeNameCode?: string; schemeNameProprietary?: string; }; }, creditorAddress?: { country: string; buildingName?: string; buildingNumber?: string; countrySubDivision?: string; districtName?: string; floor?: string; postBox?: string; postCode?: string; streetName?: string; suite?: string; townLocationName?: string; townName?: string; }, creditorAgent?: string, creditorName?: string, debtorAddress?: { country: string; buildingName?: string; buildingNumber?: string; countrySubDivision?: string; districtName?: string; floor?: string; postBox?: string; postCode?: string; streetName?: string; suite?: string; townLocationName?: string; townName?: string; }, endToEndIdentification?: string, paymentType?: { serviceLevel: \'SEPA\' | \'INTERNAL\' | \'SDVA\' | \'OTHER\'; categoryPurpose?: string; localInstrument?: string; routingPreference?: \'NONE\' | \'HIGH_PRIORITY\' | \'INSTANT\'; }, remittanceInformationStructured?: { reference: string; referenceIssuer?: string; referenceType?: string; }, remittanceInformationUnstructured?: string, supplementaryData?: { amkCode?: string; }, plmr-user-action?: boolean, X-Request-ID?: string): void`\n\n**post** `/api/v1/parties/{partyId}/standing-orders/{standingOrderId}:update`\n\nUpdate a standing order.\n\n\n### Parameters\n\n- `partyId: string`\n\n- `standingOrderId: string`\n\n- `debtorAccount: { accountId: string; currency: string; }`\n  Details of the account from which the amount will be debited.\n  - `accountId: string`\n    The ID of the account that will be debited.\n  - `currency: string`\n    ISO 4217 Alpha 3 currency code.\n\n\n- `instructedAmount: { amount: string; currency: string; }`\n  - `amount: string`\n    The amount given with fractional digits, where fractions must be compliant to the currency definition.\nUp to 14 significant figures. Negative amounts are signed by minus.\nThe decimal separator is a dot.\n\n**Example:**\nValid representations for EUR with up to two decimals are:\n\n  * 1056\n  * 5768.2\n  * -1.50\n  * 5877.78\n\n  - `currency: string`\n    ISO 4217 Alpha 3 currency code.\n\n\n- `additionalAttributes?: object`\n  Free-form map of non-standard attributes forwarded with the payment initiation request.\nValues are passed through unchanged to the payment order command for downstream consumers.\n\n\n- `creditorAccount?: { bban?: string; cashAccountType?: string; currency?: string; iban?: string; msisdn?: string; other?: { identification: string; issuer?: string; schemeNameCode?: string; schemeNameProprietary?: string; }; }`\n  Reference to a creditor account.\n\n  - `bban?: string`\n    Basic Bank Account Number (BBAN) Identifier.\n  - `cashAccountType?: string`\n    ExternalCashAccountType1Code from ISO 20022.\n  - `currency?: string`\n    ISO 4217 Alpha 3 currency code.\n\n  - `iban?: string`\n    IBAN of an account.\n  - `msisdn?: string`\n    Mobile phone number.\n  - `other?: { identification: string; issuer?: string; schemeNameCode?: string; schemeNameProprietary?: string; }`\n    In cases where the specifically defined criteria (IBAN, BBAN, MSISDN) are not provided to identify an instance of the respective account type (e.g. a savings account), the ASPSP shall include a proprietary ID of the respective account that uniquely identifies the account for this ASPSP.\n\n- `creditorAddress?: { country: string; buildingName?: string; buildingNumber?: string; countrySubDivision?: string; districtName?: string; floor?: string; postBox?: string; postCode?: string; streetName?: string; suite?: string; townLocationName?: string; townName?: string; }`\n  - `country: string`\n    Nation with its own government. ISO 3166, Alpha-2 code\n\n  - `buildingName?: string`\n    Name of the building or house\n\n  - `buildingNumber?: string`\n    Number that identifies the position of a building on a street\n\n  - `countrySubDivision?: string`\n    Identifies a subdivision of a country such as state, region, county\n\n  - `districtName?: string`\n    Identifies a subdivision within a country sub-division\n\n  - `floor?: string`\n    Floor or storey within a building\n\n  - `postBox?: string`\n    Numbered box in a post office, assigned to a person or organisation, where letters are kept until called for\n\n  - `postCode?: string`\n    Identifier consisting of a group of letters and/or numbers that is added to a postal address to assist the sorting of mail\n\n  - `streetName?: string`\n    Name of a street or thoroughfare\n\n  - `suite?: string`\n    Building room number\n\n  - `townLocationName?: string`\n    Specific location name within the town\n\n  - `townName?: string`\n    Name of a built-up area, with defined boundaries, and a local government\n\n\n- `creditorAgent?: string`\n  BICFI\n\n\n- `creditorName?: string`\n  Creditor name.\n\n- `debtorAddress?: { country: string; buildingName?: string; buildingNumber?: string; countrySubDivision?: string; districtName?: string; floor?: string; postBox?: string; postCode?: string; streetName?: string; suite?: string; townLocationName?: string; townName?: string; }`\n  - `country: string`\n    Nation with its own government. ISO 3166, Alpha-2 code\n\n  - `buildingName?: string`\n    Name of the building or house\n\n  - `buildingNumber?: string`\n    Number that identifies the position of a building on a street\n\n  - `countrySubDivision?: string`\n    Identifies a subdivision of a country such as state, region, county\n\n  - `districtName?: string`\n    Identifies a subdivision within a country sub-division\n\n  - `floor?: string`\n    Floor or storey within a building\n\n  - `postBox?: string`\n    Numbered box in a post office, assigned to a person or organisation, where letters are kept until called for\n\n  - `postCode?: string`\n    Identifier consisting of a group of letters and/or numbers that is added to a postal address to assist the sorting of mail\n\n  - `streetName?: string`\n    Name of a street or thoroughfare\n\n  - `suite?: string`\n    Building room number\n\n  - `townLocationName?: string`\n    Specific location name within the town\n\n  - `townName?: string`\n    Name of a built-up area, with defined boundaries, and a local government\n\n\n- `endToEndIdentification?: string`\n\n- `paymentType?: { serviceLevel: \'SEPA\' | \'INTERNAL\' | \'SDVA\' | \'OTHER\'; categoryPurpose?: string; localInstrument?: string; routingPreference?: \'NONE\' | \'HIGH_PRIORITY\' | \'INSTANT\'; }`\n  Specifies the payment type.\nAllowed values:\n- SEPA Instant payment          \n  ```\n  "paymentType": {\n      "serviceLevel": "SEPA",\n      "localInstrument": "INST",\n      "categoryPurpose": null,\n      "routingPreference": "INSTANT"\n     }\n  }\n  ```\n- SEPA Regular payment\n  ```\n  "paymentType": {\n      "serviceLevel": "SEPA",\n      "localInstrument": "SCT",\n      "categoryPurpose": null,\n      "routingPreference": "NONE"\n    }\n  }\n  ```\n- SEPA Any payment\n  ```\n  "paymentType": {\n      "serviceLevel": "SEPA",\n      "localInstrument": null,\n      "categoryPurpose": null,\n      "routingPreference": "NONE"\n     }\n  }\n  ```\n- Internal payment\n  ```\n  "paymentType": {\n      "serviceLevel": "INTERNAL",\n      "localInstrument": "INTERNAL",\n      "categoryPurpose": null,\n      "routingPreference": "NONE"\n      }\n   }\n    ```\n- SWIFT payment\n  ```\n  "paymentType": {\n      "serviceLevel": "SDVA",\n      "localInstrument": "SWIFT",\n      "categoryPurpose": null,\n      "routingPreference": "HIGH_PRIORITY"\n      }\n  }\n  ```\n- OTHER payment\n  ```\n  "paymentType": {\n      "serviceLevel": "OTHER",\n      "localInstrument": "OTHER",\n      "categoryPurpose": null,\n      "routingPreference": "NONE"\n     }\n  }\n  ```\n- Proprietary payment (any bank-specific local instrument, only when serviceLevel is OTHER)\n  ```\n  "paymentType": {\n      "serviceLevel": "OTHER",\n      "localInstrument": "NIP",\n      "categoryPurpose": null,\n      "routingPreference": "INSTANT"\n     }\n  }\n  ```\n\n  - `serviceLevel: \'SEPA\' | \'INTERNAL\' | \'SDVA\' | \'OTHER\'`\n    Specifies the service level for the payment\n  - `categoryPurpose?: string`\n    Specifies the category purpose for the payment\n\n  - `localInstrument?: string`\n    Specifies the local instrument for the payment.\nPredefined values: OTHER, SWIFT, INTERNAL, SCT, INST.\nSupports Proprietary value of 1 to 35 characters.\n\n  - `routingPreference?: \'NONE\' | \'HIGH_PRIORITY\' | \'INSTANT\'`\n    Specifies the routing preference for the payment\n\n- `remittanceInformationStructured?: { reference: string; referenceIssuer?: string; referenceType?: string; }`\n  - `reference: string`\n  - `referenceIssuer?: string`\n  - `referenceType?: string`\n\n- `remittanceInformationUnstructured?: string`\n  Unstructured remittance information.\n\n\n- `supplementaryData?: { amkCode?: string; }`\n  Additional information that cannot be captured in the structured elements and/or any other specific block.\n\n  - `amkCode?: string`\n\n- `plmr-user-action?: boolean`\n\n- `X-Request-ID?: string`\n\n### Example\n\n```typescript\nimport Plumery from \'plumery\';\n\nconst client = new Plumery();\n\nawait client.parties.standingOrders.update(\'2751d7d9-df79-4412-b4c4-28aaa7075548\', {\n  partyId: \'6878951b-256b-4baa-9e81-ad4c577adc4e\',\n  debtorAccount: { accountId: \'4ec4e5f6-1124-5678-abcd-1234567890ef\', currency: \'EUR\' },\n  instructedAmount: { amount: \'5877.78\', currency: \'EUR\' },\n})\n```',
    perLanguage: {
      typescript: {
        method: 'client.parties.standingOrders.update',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nawait client.parties.standingOrders.update('2751d7d9-df79-4412-b4c4-28aaa7075548', {\n  partyId: '6878951b-256b-4baa-9e81-ad4c577adc4e',\n  debtorAccount: { accountId: '4ec4e5f6-1124-5678-abcd-1234567890ef', currency: 'EUR' },\n  instructedAmount: { amount: '5877.78', currency: 'EUR' },\n});",
      },
      python: {
        method: 'parties.standing_orders.update',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nclient.parties.standing_orders.update(\n    standing_order_id="2751d7d9-df79-4412-b4c4-28aaa7075548",\n    party_id="6878951b-256b-4baa-9e81-ad4c577adc4e",\n    debtor_account={\n        "account_id": "4ec4e5f6-1124-5678-abcd-1234567890ef",\n        "currency": "EUR",\n    },\n    instructed_amount={\n        "amount": "5877.78",\n        "currency": "EUR",\n    },\n)',
      },
      java: {
        method: 'parties().standingOrders().update',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.parties.standingorders.StandingOrderUpdateParams;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        StandingOrderUpdateParams params = StandingOrderUpdateParams.builder()\n            .partyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n            .standingOrderId("2751d7d9-df79-4412-b4c4-28aaa7075548")\n            .debtorAccount(StandingOrderUpdateParams.DebtorAccount.builder()\n                .accountId("4ec4e5f6-1124-5678-abcd-1234567890ef")\n                .currency("EUR")\n                .build())\n            .instructedAmount(StandingOrderUpdateParams.InstructedAmount.builder()\n                .amount("5877.78")\n                .currency("EUR")\n                .build())\n            .build();\n        client.parties().standingOrders().update(params);\n    }\n}',
      },
      kotlin: {
        method: 'parties().standingOrders().update',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.parties.standingorders.StandingOrderUpdateParams\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: StandingOrderUpdateParams = StandingOrderUpdateParams.builder()\n        .partyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n        .standingOrderId("2751d7d9-df79-4412-b4c4-28aaa7075548")\n        .debtorAccount(StandingOrderUpdateParams.DebtorAccount.builder()\n            .accountId("4ec4e5f6-1124-5678-abcd-1234567890ef")\n            .currency("EUR")\n            .build())\n        .instructedAmount(StandingOrderUpdateParams.InstructedAmount.builder()\n            .amount("5877.78")\n            .currency("EUR")\n            .build())\n        .build()\n    client.parties().standingOrders().update(params)\n}',
      },
      go: {
        method: 'client.Parties.StandingOrders.Update',
        example:
          'package main\n\nimport (\n\t"context"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\terr := client.Parties.StandingOrders.Update(\n\t\tcontext.TODO(),\n\t\t"6878951b-256b-4baa-9e81-ad4c577adc4e",\n\t\t"2751d7d9-df79-4412-b4c4-28aaa7075548",\n\t\tplumery.PartyStandingOrderUpdateParams{\n\t\t\tDebtorAccount: plumery.F(plumery.PartyStandingOrderUpdateParamsDebtorAccount{\n\t\t\t\tAccountID: plumery.F("4ec4e5f6-1124-5678-abcd-1234567890ef"),\n\t\t\t\tCurrency:  plumery.F("EUR"),\n\t\t\t}),\n\t\t\tInstructedAmount: plumery.F(plumery.PartyStandingOrderUpdateParamsInstructedAmount{\n\t\t\t\tAmount:   plumery.F("5877.78"),\n\t\t\t\tCurrency: plumery.F("EUR"),\n\t\t\t}),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
      },
      cli: {
        method: 'standing-orders update',
        example:
          "plumery parties:standing-orders update \\\n  --session 'My Session' \\\n  --party-id 6878951b-256b-4baa-9e81-ad4c577adc4e \\\n  --standing-order-id 2751d7d9-df79-4412-b4c4-28aaa7075548 \\\n  --debtor-account '{accountId: 4ec4e5f6-1124-5678-abcd-1234567890ef, currency: EUR}' \\\n  --instructed-amount \"{amount: '5877.78', currency: EUR}\"",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/parties/$PARTY_ID/standing-orders/$STANDING_ORDER_ID:update \\\n    -H \'Content-Type: application/json\' \\\n    -H "Cookie: $SESSION" \\\n    -d \'{\n          "debtorAccount": {\n            "accountId": "4ec4e5f6-1124-5678-abcd-1234567890ef",\n            "currency": "EUR"\n          },\n          "instructedAmount": {\n            "amount": "5877.78",\n            "currency": "EUR"\n          },\n          "creditorAgent": "AAAADEBBXXX",\n          "creditorName": "Creditor Name",\n          "remittanceInformationUnstructured": "Ref Number Merchant"\n        }\'',
      },
    },
  },
  {
    name: 'pause',
    endpoint: '/api/v1/parties/{partyId}/standing-orders/{standingOrderId}:pause',
    httpMethod: 'post',
    summary: 'Pause Standing Order',
    description: 'Pause the execution of a standing order.\n',
    stainlessPath: '(resource) parties.standing-orders > (method) pause',
    qualified: 'client.parties.standingOrders.pause',
    params: [
      'partyId: string;',
      'standingOrderId: string;',
      'plmr-user-action?: boolean;',
      'X-Request-ID?: string;',
    ],
    markdown:
      "## pause\n\n`client.parties.standingOrders.pause(partyId: string, standingOrderId: string, plmr-user-action?: boolean, X-Request-ID?: string): void`\n\n**post** `/api/v1/parties/{partyId}/standing-orders/{standingOrderId}:pause`\n\nPause the execution of a standing order.\n\n\n### Parameters\n\n- `partyId: string`\n\n- `standingOrderId: string`\n\n- `plmr-user-action?: boolean`\n\n- `X-Request-ID?: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nawait client.parties.standingOrders.pause('2751d7d9-df79-4412-b4c4-28aaa7075548', { partyId: '6878951b-256b-4baa-9e81-ad4c577adc4e' })\n```",
    perLanguage: {
      typescript: {
        method: 'client.parties.standingOrders.pause',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nawait client.parties.standingOrders.pause('2751d7d9-df79-4412-b4c4-28aaa7075548', {\n  partyId: '6878951b-256b-4baa-9e81-ad4c577adc4e',\n});",
      },
      python: {
        method: 'parties.standing_orders.pause',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nclient.parties.standing_orders.pause(\n    standing_order_id="2751d7d9-df79-4412-b4c4-28aaa7075548",\n    party_id="6878951b-256b-4baa-9e81-ad4c577adc4e",\n)',
      },
      java: {
        method: 'parties().standingOrders().pause',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.parties.standingorders.StandingOrderPauseParams;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        StandingOrderPauseParams params = StandingOrderPauseParams.builder()\n            .partyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n            .standingOrderId("2751d7d9-df79-4412-b4c4-28aaa7075548")\n            .build();\n        client.parties().standingOrders().pause(params);\n    }\n}',
      },
      kotlin: {
        method: 'parties().standingOrders().pause',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.parties.standingorders.StandingOrderPauseParams\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: StandingOrderPauseParams = StandingOrderPauseParams.builder()\n        .partyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n        .standingOrderId("2751d7d9-df79-4412-b4c4-28aaa7075548")\n        .build()\n    client.parties().standingOrders().pause(params)\n}',
      },
      go: {
        method: 'client.Parties.StandingOrders.Pause',
        example:
          'package main\n\nimport (\n\t"context"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\terr := client.Parties.StandingOrders.Pause(\n\t\tcontext.TODO(),\n\t\t"6878951b-256b-4baa-9e81-ad4c577adc4e",\n\t\t"2751d7d9-df79-4412-b4c4-28aaa7075548",\n\t\tplumery.PartyStandingOrderPauseParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
      },
      cli: {
        method: 'standing-orders pause',
        example:
          "plumery parties:standing-orders pause \\\n  --session 'My Session' \\\n  --party-id 6878951b-256b-4baa-9e81-ad4c577adc4e \\\n  --standing-order-id 2751d7d9-df79-4412-b4c4-28aaa7075548",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/parties/$PARTY_ID/standing-orders/$STANDING_ORDER_ID:pause \\\n    -X POST \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'resume',
    endpoint: '/api/v1/parties/{partyId}/standing-orders/{standingOrderId}:resume',
    httpMethod: 'post',
    summary: 'Resume Standing Order',
    description: 'Resume the execution of a standing order.\n',
    stainlessPath: '(resource) parties.standing-orders > (method) resume',
    qualified: 'client.parties.standingOrders.resume',
    params: [
      'partyId: string;',
      'standingOrderId: string;',
      'plmr-user-action?: boolean;',
      'X-Request-ID?: string;',
    ],
    markdown:
      "## resume\n\n`client.parties.standingOrders.resume(partyId: string, standingOrderId: string, plmr-user-action?: boolean, X-Request-ID?: string): void`\n\n**post** `/api/v1/parties/{partyId}/standing-orders/{standingOrderId}:resume`\n\nResume the execution of a standing order.\n\n\n### Parameters\n\n- `partyId: string`\n\n- `standingOrderId: string`\n\n- `plmr-user-action?: boolean`\n\n- `X-Request-ID?: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nawait client.parties.standingOrders.resume('2751d7d9-df79-4412-b4c4-28aaa7075548', { partyId: '6878951b-256b-4baa-9e81-ad4c577adc4e' })\n```",
    perLanguage: {
      typescript: {
        method: 'client.parties.standingOrders.resume',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nawait client.parties.standingOrders.resume('2751d7d9-df79-4412-b4c4-28aaa7075548', {\n  partyId: '6878951b-256b-4baa-9e81-ad4c577adc4e',\n});",
      },
      python: {
        method: 'parties.standing_orders.resume',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nclient.parties.standing_orders.resume(\n    standing_order_id="2751d7d9-df79-4412-b4c4-28aaa7075548",\n    party_id="6878951b-256b-4baa-9e81-ad4c577adc4e",\n)',
      },
      java: {
        method: 'parties().standingOrders().resume',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.parties.standingorders.StandingOrderResumeParams;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        StandingOrderResumeParams params = StandingOrderResumeParams.builder()\n            .partyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n            .standingOrderId("2751d7d9-df79-4412-b4c4-28aaa7075548")\n            .build();\n        client.parties().standingOrders().resume(params);\n    }\n}',
      },
      kotlin: {
        method: 'parties().standingOrders().resume',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.parties.standingorders.StandingOrderResumeParams\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: StandingOrderResumeParams = StandingOrderResumeParams.builder()\n        .partyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n        .standingOrderId("2751d7d9-df79-4412-b4c4-28aaa7075548")\n        .build()\n    client.parties().standingOrders().resume(params)\n}',
      },
      go: {
        method: 'client.Parties.StandingOrders.Resume',
        example:
          'package main\n\nimport (\n\t"context"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\terr := client.Parties.StandingOrders.Resume(\n\t\tcontext.TODO(),\n\t\t"6878951b-256b-4baa-9e81-ad4c577adc4e",\n\t\t"2751d7d9-df79-4412-b4c4-28aaa7075548",\n\t\tplumery.PartyStandingOrderResumeParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
      },
      cli: {
        method: 'standing-orders resume',
        example:
          "plumery parties:standing-orders resume \\\n  --session 'My Session' \\\n  --party-id 6878951b-256b-4baa-9e81-ad4c577adc4e \\\n  --standing-order-id 2751d7d9-df79-4412-b4c4-28aaa7075548",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/parties/$PARTY_ID/standing-orders/$STANDING_ORDER_ID:resume \\\n    -X POST \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'cancel',
    endpoint: '/api/v1/parties/{partyId}/standing-orders/{standingOrderId}:cancel',
    httpMethod: 'post',
    summary: 'Cancel Standing Order',
    description: 'Cancel a standing order.\n',
    stainlessPath: '(resource) parties.standing-orders > (method) cancel',
    qualified: 'client.parties.standingOrders.cancel',
    params: [
      'partyId: string;',
      'standingOrderId: string;',
      'plmr-user-action?: boolean;',
      'X-Request-ID?: string;',
    ],
    markdown:
      "## cancel\n\n`client.parties.standingOrders.cancel(partyId: string, standingOrderId: string, plmr-user-action?: boolean, X-Request-ID?: string): void`\n\n**post** `/api/v1/parties/{partyId}/standing-orders/{standingOrderId}:cancel`\n\nCancel a standing order.\n\n\n### Parameters\n\n- `partyId: string`\n\n- `standingOrderId: string`\n\n- `plmr-user-action?: boolean`\n\n- `X-Request-ID?: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nawait client.parties.standingOrders.cancel('2751d7d9-df79-4412-b4c4-28aaa7075548', { partyId: '6878951b-256b-4baa-9e81-ad4c577adc4e' })\n```",
    perLanguage: {
      typescript: {
        method: 'client.parties.standingOrders.cancel',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nawait client.parties.standingOrders.cancel('2751d7d9-df79-4412-b4c4-28aaa7075548', {\n  partyId: '6878951b-256b-4baa-9e81-ad4c577adc4e',\n});",
      },
      python: {
        method: 'parties.standing_orders.cancel',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nclient.parties.standing_orders.cancel(\n    standing_order_id="2751d7d9-df79-4412-b4c4-28aaa7075548",\n    party_id="6878951b-256b-4baa-9e81-ad4c577adc4e",\n)',
      },
      java: {
        method: 'parties().standingOrders().cancel',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.parties.standingorders.StandingOrderCancelParams;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        StandingOrderCancelParams params = StandingOrderCancelParams.builder()\n            .partyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n            .standingOrderId("2751d7d9-df79-4412-b4c4-28aaa7075548")\n            .build();\n        client.parties().standingOrders().cancel(params);\n    }\n}',
      },
      kotlin: {
        method: 'parties().standingOrders().cancel',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.parties.standingorders.StandingOrderCancelParams\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: StandingOrderCancelParams = StandingOrderCancelParams.builder()\n        .partyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n        .standingOrderId("2751d7d9-df79-4412-b4c4-28aaa7075548")\n        .build()\n    client.parties().standingOrders().cancel(params)\n}',
      },
      go: {
        method: 'client.Parties.StandingOrders.Cancel',
        example:
          'package main\n\nimport (\n\t"context"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\terr := client.Parties.StandingOrders.Cancel(\n\t\tcontext.TODO(),\n\t\t"6878951b-256b-4baa-9e81-ad4c577adc4e",\n\t\t"2751d7d9-df79-4412-b4c4-28aaa7075548",\n\t\tplumery.PartyStandingOrderCancelParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
      },
      cli: {
        method: 'standing-orders cancel',
        example:
          "plumery parties:standing-orders cancel \\\n  --session 'My Session' \\\n  --party-id 6878951b-256b-4baa-9e81-ad4c577adc4e \\\n  --standing-order-id 2751d7d9-df79-4412-b4c4-28aaa7075548",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/parties/$PARTY_ID/standing-orders/$STANDING_ORDER_ID:cancel \\\n    -X POST \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'create',
    endpoint: '/api/v1/parties/{partyId}/counterparties',
    httpMethod: 'post',
    summary: 'Create a New Counterparty',
    description: 'Create a new counterparty to transact with',
    stainlessPath: '(resource) parties.counterparties > (method) create',
    qualified: 'client.parties.counterparties.create',
    params: [
      'partyId: string;',
      'paymentMethods: { account: { bban?: string; cashAccountType?: string; currency?: string; iban?: string; msisdn?: string; other?: { identification: string; issuer?: string; schemeNameCode?: string; schemeNameProprietary?: string; }; }; country: string; name: string; id?: string; agent?: string; bankName?: string; }[];',
      'additionalAttributes?: object;',
      'address?: { country: string; buildingName?: string; buildingNumber?: string; countrySubDivision?: string; districtName?: string; floor?: string; postBox?: string; postCode?: string; streetName?: string; suite?: string; townLocationName?: string; townName?: string; };',
      'alias?: string;',
      'email?: string;',
      'individual?: { firstName: string; lastName: string; middleNames?: string; };',
      'organisation?: { legalName?: string; };',
      'phoneNumber?: string;',
      'plmr-user-action?: boolean;',
    ],
    response: '{ counterpartyId?: string; }',
    markdown:
      "## create\n\n`client.parties.counterparties.create(partyId: string, paymentMethods: { account: { bban?: string; cashAccountType?: string; currency?: string; iban?: string; msisdn?: string; other?: object; }; country: string; name: string; id?: string; agent?: string; bankName?: string; }[], additionalAttributes?: object, address?: { country: string; buildingName?: string; buildingNumber?: string; countrySubDivision?: string; districtName?: string; floor?: string; postBox?: string; postCode?: string; streetName?: string; suite?: string; townLocationName?: string; townName?: string; }, alias?: string, email?: string, individual?: { firstName: string; lastName: string; middleNames?: string; }, organisation?: { legalName?: string; }, phoneNumber?: string, plmr-user-action?: boolean): { counterpartyId?: string; }`\n\n**post** `/api/v1/parties/{partyId}/counterparties`\n\nCreate a new counterparty to transact with\n\n### Parameters\n\n- `partyId: string`\n\n- `paymentMethods: { account: { bban?: string; cashAccountType?: string; currency?: string; iban?: string; msisdn?: string; other?: { identification: string; issuer?: string; schemeNameCode?: string; schemeNameProprietary?: string; }; }; country: string; name: string; id?: string; agent?: string; bankName?: string; }[]`\n\n- `additionalAttributes?: object`\n  Free-form map of non-standard attributes forwarded with the payment initiation request.\nValues are passed through unchanged to the payment order command for downstream consumers.\n\n\n- `address?: { country: string; buildingName?: string; buildingNumber?: string; countrySubDivision?: string; districtName?: string; floor?: string; postBox?: string; postCode?: string; streetName?: string; suite?: string; townLocationName?: string; townName?: string; }`\n  - `country: string`\n    Nation with its own government. ISO 3166, Alpha-2 code\n\n  - `buildingName?: string`\n    Name of the building or house\n\n  - `buildingNumber?: string`\n    Number that identifies the position of a building on a street\n\n  - `countrySubDivision?: string`\n    Identifies a subdivision of a country such as state, region, county\n\n  - `districtName?: string`\n    Identifies a subdivision within a country sub-division\n\n  - `floor?: string`\n    Floor or storey within a building\n\n  - `postBox?: string`\n    Numbered box in a post office, assigned to a person or organisation, where letters are kept until called for\n\n  - `postCode?: string`\n    Identifier consisting of a group of letters and/or numbers that is added to a postal address to assist the sorting of mail\n\n  - `streetName?: string`\n    Name of a street or thoroughfare\n\n  - `suite?: string`\n    Building room number\n\n  - `townLocationName?: string`\n    Specific location name within the town\n\n  - `townName?: string`\n    Name of a built-up area, with defined boundaries, and a local government\n\n\n- `alias?: string`\n  Display alias of the counterparty, as defined by the user.\n\n- `email?: string`\n  Email address of the counterparty\n\n- `individual?: { firstName: string; lastName: string; middleNames?: string; }`\n  The name of the individual in case the counterparty is an individual. Either **organisation** or **individual** should be provided.\n\n  - `firstName: string`\n  - `lastName: string`\n  - `middleNames?: string`\n\n- `organisation?: { legalName?: string; }`\n  The name of the individual in case the counterparty is an individual. Either **organisation** or **individual** should be provided.\n\n  - `legalName?: string`\n\n- `phoneNumber?: string`\n  Phone number of the counterparty\n\n\n- `plmr-user-action?: boolean`\n\n### Returns\n\n- `{ counterpartyId?: string; }`\n\n  - `counterpartyId?: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst counterparty = await client.parties.counterparties.create('6878951b-256b-4baa-9e81-ad4c577adc4e', { paymentMethods: [{\n  account: {},\n  country: 'FR',\n  name: 'name',\n}] });\n\nconsole.log(counterparty);\n```",
    perLanguage: {
      typescript: {
        method: 'client.parties.counterparties.create',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nconst counterparty = await client.parties.counterparties.create(\n  '6878951b-256b-4baa-9e81-ad4c577adc4e',\n  {\n    paymentMethods: [\n      {\n        account: {},\n        country: 'FR',\n        name: 'name',\n      },\n    ],\n  },\n);\n\nconsole.log(counterparty.counterpartyId);",
      },
      python: {
        method: 'parties.counterparties.create',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\ncounterparty = client.parties.counterparties.create(\n    party_id="6878951b-256b-4baa-9e81-ad4c577adc4e",\n    payment_methods=[{\n        "account": {},\n        "country": "FR",\n        "name": "name",\n    }],\n)\nprint(counterparty.counterparty_id)',
      },
      java: {
        method: 'parties().counterparties().create',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.parties.counterparties.CounterpartyCreateParams;\nimport com.plumery.api.models.parties.counterparties.CounterpartyCreateResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        CounterpartyCreateParams params = CounterpartyCreateParams.builder()\n            .partyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n            .addPaymentMethod(CounterpartyCreateParams.PaymentMethod.builder()\n                .account(CounterpartyCreateParams.PaymentMethod.Account.builder().build())\n                .country("FR")\n                .name("name")\n                .build())\n            .build();\n        CounterpartyCreateResponse counterparty = client.parties().counterparties().create(params);\n    }\n}',
      },
      kotlin: {
        method: 'parties().counterparties().create',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.parties.counterparties.CounterpartyCreateParams\nimport com.plumery.api.models.parties.counterparties.CounterpartyCreateResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: CounterpartyCreateParams = CounterpartyCreateParams.builder()\n        .partyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n        .addPaymentMethod(CounterpartyCreateParams.PaymentMethod.builder()\n            .account(CounterpartyCreateParams.PaymentMethod.Account.builder().build())\n            .country("FR")\n            .name("name")\n            .build())\n        .build()\n    val counterparty: CounterpartyCreateResponse = client.parties().counterparties().create(params)\n}',
      },
      go: {
        method: 'client.Parties.Counterparties.New',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tcounterparty, err := client.Parties.Counterparties.New(\n\t\tcontext.TODO(),\n\t\t"6878951b-256b-4baa-9e81-ad4c577adc4e",\n\t\tplumery.PartyCounterpartyNewParams{\n\t\t\tPaymentMethods: plumery.F([]plumery.PartyCounterpartyNewParamsPaymentMethod{{\n\t\t\t\tAccount: plumery.F(plumery.PartyCounterpartyNewParamsPaymentMethodsAccount{}),\n\t\t\t\tCountry: plumery.F("FR"),\n\t\t\t\tName:    plumery.F("name"),\n\t\t\t}}),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", counterparty.CounterpartyID)\n}\n',
      },
      cli: {
        method: 'counterparties create',
        example:
          "plumery parties:counterparties create \\\n  --session 'My Session' \\\n  --party-id 6878951b-256b-4baa-9e81-ad4c577adc4e \\\n  --payment-method '{account: {}, country: FR, name: name}'",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/parties/$PARTY_ID/counterparties \\\n    -H \'Content-Type: application/json\' \\\n    -H "Cookie: $SESSION" \\\n    -d \'{\n          "paymentMethods": [\n            {\n              "account": {},\n              "country": "FR",\n              "name": "name"\n            }\n          ],\n          "alias": "Mum",\n          "email": "john.doe@example.com",\n          "phoneNumber": "+1669910"\n        }\'',
      },
    },
  },
  {
    name: 'list',
    endpoint: '/api/v1/parties/{partyId}/counterparties',
    httpMethod: 'get',
    summary: 'Get All Counterparties',
    description: 'Get all counterparties for a specific party.\n',
    stainlessPath: '(resource) parties.counterparties > (method) list',
    qualified: 'client.parties.counterparties.list',
    params: [
      'partyId: string;',
      "sortBy?: 'NAME' | 'LAST_USED';",
      "sortDirection?: 'ASCENDING' | 'DESCENDING';",
      'plmr-user-action?: boolean;',
    ],
    response:
      '{ counterparties?: { paymentMethods: { account: object; country: string; name: string; id?: string; agent?: string; bankName?: string; }[]; additionalAttributes?: object; address?: { country: string; buildingName?: string; buildingNumber?: string; countrySubDivision?: string; districtName?: string; floor?: string; postBox?: string; postCode?: string; streetName?: string; suite?: string; townLocationName?: string; townName?: string; }; alias?: string; counterpartyId?: string; email?: string; individual?: { firstName: string; lastName: string; middleNames?: string; }; organisation?: { legalName?: string; }; phoneNumber?: string; }[]; }',
    markdown:
      "## list\n\n`client.parties.counterparties.list(partyId: string, sortBy?: 'NAME' | 'LAST_USED', sortDirection?: 'ASCENDING' | 'DESCENDING', plmr-user-action?: boolean): { counterparties?: object[]; }`\n\n**get** `/api/v1/parties/{partyId}/counterparties`\n\nGet all counterparties for a specific party.\n\n\n### Parameters\n\n- `partyId: string`\n\n- `sortBy?: 'NAME' | 'LAST_USED'`\n  Specifies the sorting field that determines the order of the results.\nDefaults to NAME, which orders by the counterparty's legal name.\nLAST_USED orders by the moment the counterparty was last paid by a single payment;\ncounterparties that have never been paid are always placed last, in either direction,\nand counterparties sharing a moment are further ordered by name.\n\n- `sortDirection?: 'ASCENDING' | 'DESCENDING'`\n  Specifies the direction of the sorting field.\nBy default ASCENDING is used.\n\n- `plmr-user-action?: boolean`\n\n### Returns\n\n- `{ counterparties?: { paymentMethods: { account: object; country: string; name: string; id?: string; agent?: string; bankName?: string; }[]; additionalAttributes?: object; address?: { country: string; buildingName?: string; buildingNumber?: string; countrySubDivision?: string; districtName?: string; floor?: string; postBox?: string; postCode?: string; streetName?: string; suite?: string; townLocationName?: string; townName?: string; }; alias?: string; counterpartyId?: string; email?: string; individual?: { firstName: string; lastName: string; middleNames?: string; }; organisation?: { legalName?: string; }; phoneNumber?: string; }[]; }`\n  Counterparties associated with a party\n\n\n  - `counterparties?: { paymentMethods: { account: { bban?: string; cashAccountType?: string; currency?: string; iban?: string; msisdn?: string; other?: { identification: string; issuer?: string; schemeNameCode?: string; schemeNameProprietary?: string; }; }; country: string; name: string; id?: string; agent?: string; bankName?: string; }[]; additionalAttributes?: object; address?: { country: string; buildingName?: string; buildingNumber?: string; countrySubDivision?: string; districtName?: string; floor?: string; postBox?: string; postCode?: string; streetName?: string; suite?: string; townLocationName?: string; townName?: string; }; alias?: string; counterpartyId?: string; email?: string; individual?: { firstName: string; lastName: string; middleNames?: string; }; organisation?: { legalName?: string; }; phoneNumber?: string; }[]`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst counterparties = await client.parties.counterparties.list('6878951b-256b-4baa-9e81-ad4c577adc4e');\n\nconsole.log(counterparties);\n```",
    perLanguage: {
      typescript: {
        method: 'client.parties.counterparties.list',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nconst counterparties = await client.parties.counterparties.list(\n  '6878951b-256b-4baa-9e81-ad4c577adc4e',\n);\n\nconsole.log(counterparties.counterparties);",
      },
      python: {
        method: 'parties.counterparties.list',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\ncounterparties = client.parties.counterparties.list(\n    party_id="6878951b-256b-4baa-9e81-ad4c577adc4e",\n)\nprint(counterparties.counterparties)',
      },
      java: {
        method: 'parties().counterparties().list',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.parties.counterparties.CounterpartyListParams;\nimport com.plumery.api.models.parties.counterparties.CounterpartyListResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        CounterpartyListResponse counterparties = client.parties().counterparties().list("6878951b-256b-4baa-9e81-ad4c577adc4e");\n    }\n}',
      },
      kotlin: {
        method: 'parties().counterparties().list',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.parties.counterparties.CounterpartyListParams\nimport com.plumery.api.models.parties.counterparties.CounterpartyListResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val counterparties: CounterpartyListResponse = client.parties().counterparties().list("6878951b-256b-4baa-9e81-ad4c577adc4e")\n}',
      },
      go: {
        method: 'client.Parties.Counterparties.List',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tcounterparties, err := client.Parties.Counterparties.List(\n\t\tcontext.TODO(),\n\t\t"6878951b-256b-4baa-9e81-ad4c577adc4e",\n\t\tplumery.PartyCounterpartyListParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", counterparties.Counterparties)\n}\n',
      },
      cli: {
        method: 'counterparties list',
        example:
          "plumery parties:counterparties list \\\n  --session 'My Session' \\\n  --party-id 6878951b-256b-4baa-9e81-ad4c577adc4e",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/parties/$PARTY_ID/counterparties \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'retrieve',
    endpoint: '/api/v1/parties/{partyId}/counterparties/{counterpartyId}',
    httpMethod: 'get',
    summary: 'Get Counterparty',
    description: 'Retrieve a counterparty by ID\n',
    stainlessPath: '(resource) parties.counterparties > (method) retrieve',
    qualified: 'client.parties.counterparties.retrieve',
    params: ['partyId: string;', 'counterpartyId: string;', 'plmr-user-action?: boolean;'],
    response:
      '{ paymentMethods: { account: { bban?: string; cashAccountType?: string; currency?: string; iban?: string; msisdn?: string; other?: object; }; country: string; name: string; id?: string; agent?: string; bankName?: string; }[]; additionalAttributes?: object; address?: { country: string; buildingName?: string; buildingNumber?: string; countrySubDivision?: string; districtName?: string; floor?: string; postBox?: string; postCode?: string; streetName?: string; suite?: string; townLocationName?: string; townName?: string; }; alias?: string; counterpartyId?: string; email?: string; individual?: { firstName: string; lastName: string; middleNames?: string; }; organisation?: { legalName?: string; }; phoneNumber?: string; }',
    markdown:
      "## retrieve\n\n`client.parties.counterparties.retrieve(partyId: string, counterpartyId: string, plmr-user-action?: boolean): { paymentMethods: object[]; additionalAttributes?: object; address?: object; alias?: string; counterpartyId?: string; email?: string; individual?: object; organisation?: object; phoneNumber?: string; }`\n\n**get** `/api/v1/parties/{partyId}/counterparties/{counterpartyId}`\n\nRetrieve a counterparty by ID\n\n\n### Parameters\n\n- `partyId: string`\n\n- `counterpartyId: string`\n\n- `plmr-user-action?: boolean`\n\n### Returns\n\n- `{ paymentMethods: { account: { bban?: string; cashAccountType?: string; currency?: string; iban?: string; msisdn?: string; other?: object; }; country: string; name: string; id?: string; agent?: string; bankName?: string; }[]; additionalAttributes?: object; address?: { country: string; buildingName?: string; buildingNumber?: string; countrySubDivision?: string; districtName?: string; floor?: string; postBox?: string; postCode?: string; streetName?: string; suite?: string; townLocationName?: string; townName?: string; }; alias?: string; counterpartyId?: string; email?: string; individual?: { firstName: string; lastName: string; middleNames?: string; }; organisation?: { legalName?: string; }; phoneNumber?: string; }`\n\n  - `paymentMethods: { account: { bban?: string; cashAccountType?: string; currency?: string; iban?: string; msisdn?: string; other?: { identification: string; issuer?: string; schemeNameCode?: string; schemeNameProprietary?: string; }; }; country: string; name: string; id?: string; agent?: string; bankName?: string; }[]`\n  - `additionalAttributes?: object`\n  - `address?: { country: string; buildingName?: string; buildingNumber?: string; countrySubDivision?: string; districtName?: string; floor?: string; postBox?: string; postCode?: string; streetName?: string; suite?: string; townLocationName?: string; townName?: string; }`\n  - `alias?: string`\n  - `counterpartyId?: string`\n  - `email?: string`\n  - `individual?: { firstName: string; lastName: string; middleNames?: string; }`\n  - `organisation?: { legalName?: string; }`\n  - `phoneNumber?: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst counterparty = await client.parties.counterparties.retrieve('xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', { partyId: '6878951b-256b-4baa-9e81-ad4c577adc4e' });\n\nconsole.log(counterparty);\n```",
    perLanguage: {
      typescript: {
        method: 'client.parties.counterparties.retrieve',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nconst counterparty = await client.parties.counterparties.retrieve(\n  'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',\n  { partyId: '6878951b-256b-4baa-9e81-ad4c577adc4e' },\n);\n\nconsole.log(counterparty.individual);",
      },
      python: {
        method: 'parties.counterparties.retrieve',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\ncounterparty = client.parties.counterparties.retrieve(\n    counterparty_id="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",\n    party_id="6878951b-256b-4baa-9e81-ad4c577adc4e",\n)\nprint(counterparty.individual)',
      },
      java: {
        method: 'parties().counterparties().retrieve',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.parties.counterparties.CounterpartyRetrieveParams;\nimport com.plumery.api.models.parties.counterparties.CounterpartyRetrieveResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        CounterpartyRetrieveParams params = CounterpartyRetrieveParams.builder()\n            .partyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n            .counterpartyId("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx")\n            .build();\n        CounterpartyRetrieveResponse counterparty = client.parties().counterparties().retrieve(params);\n    }\n}',
      },
      kotlin: {
        method: 'parties().counterparties().retrieve',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.parties.counterparties.CounterpartyRetrieveParams\nimport com.plumery.api.models.parties.counterparties.CounterpartyRetrieveResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: CounterpartyRetrieveParams = CounterpartyRetrieveParams.builder()\n        .partyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n        .counterpartyId("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx")\n        .build()\n    val counterparty: CounterpartyRetrieveResponse = client.parties().counterparties().retrieve(params)\n}',
      },
      go: {
        method: 'client.Parties.Counterparties.Get',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tcounterparty, err := client.Parties.Counterparties.Get(\n\t\tcontext.TODO(),\n\t\t"6878951b-256b-4baa-9e81-ad4c577adc4e",\n\t\t"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",\n\t\tplumery.PartyCounterpartyGetParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", counterparty.Individual)\n}\n',
      },
      cli: {
        method: 'counterparties retrieve',
        example:
          "plumery parties:counterparties retrieve \\\n  --session 'My Session' \\\n  --party-id 6878951b-256b-4baa-9e81-ad4c577adc4e \\\n  --counterparty-id xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/parties/$PARTY_ID/counterparties/$COUNTERPARTY_ID \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'search',
    endpoint: '/api/v1/parties/{partyId}/counterparties:search',
    httpMethod: 'post',
    summary: 'Search for a Counterparty',
    description:
      'Search for a counterparty based on counterparty details like name, alias, phone and email address\n',
    stainlessPath: '(resource) parties.counterparties > (method) search',
    qualified: 'client.parties.counterparties.search',
    params: [
      'partyId: string;',
      'query: string;',
      "sortBy?: 'NAME' | 'LAST_USED';",
      "sortDirection?: 'ASCENDING' | 'DESCENDING';",
      'plmr-user-action?: boolean;',
    ],
    response:
      '{ counterparties?: { paymentMethods: { account: object; country: string; name: string; id?: string; agent?: string; bankName?: string; }[]; additionalAttributes?: object; address?: { country: string; buildingName?: string; buildingNumber?: string; countrySubDivision?: string; districtName?: string; floor?: string; postBox?: string; postCode?: string; streetName?: string; suite?: string; townLocationName?: string; townName?: string; }; alias?: string; counterpartyId?: string; email?: string; individual?: { firstName: string; lastName: string; middleNames?: string; }; organisation?: { legalName?: string; }; phoneNumber?: string; }[]; }',
    markdown:
      "## search\n\n`client.parties.counterparties.search(partyId: string, query: string, sortBy?: 'NAME' | 'LAST_USED', sortDirection?: 'ASCENDING' | 'DESCENDING', plmr-user-action?: boolean): { counterparties?: object[]; }`\n\n**post** `/api/v1/parties/{partyId}/counterparties:search`\n\nSearch for a counterparty based on counterparty details like name, alias, phone and email address\n\n\n### Parameters\n\n- `partyId: string`\n\n- `query: string`\n  partial text of name, alias, phone or email\n\n- `sortBy?: 'NAME' | 'LAST_USED'`\n  Specifies the sorting field that determines the order of the results.\nDefaults to NAME, which orders by the counterparty's legal name.\nLAST_USED orders by the moment the counterparty was last paid by a single payment;\ncounterparties that have never been paid are always placed last, in either direction,\nand counterparties sharing a moment are further ordered by name.\n\n- `sortDirection?: 'ASCENDING' | 'DESCENDING'`\n  Specifies the direction of the sorting field.\nBy default ASCENDING is used.\n\n- `plmr-user-action?: boolean`\n\n### Returns\n\n- `{ counterparties?: { paymentMethods: { account: object; country: string; name: string; id?: string; agent?: string; bankName?: string; }[]; additionalAttributes?: object; address?: { country: string; buildingName?: string; buildingNumber?: string; countrySubDivision?: string; districtName?: string; floor?: string; postBox?: string; postCode?: string; streetName?: string; suite?: string; townLocationName?: string; townName?: string; }; alias?: string; counterpartyId?: string; email?: string; individual?: { firstName: string; lastName: string; middleNames?: string; }; organisation?: { legalName?: string; }; phoneNumber?: string; }[]; }`\n  Counterparties associated with a party\n\n\n  - `counterparties?: { paymentMethods: { account: { bban?: string; cashAccountType?: string; currency?: string; iban?: string; msisdn?: string; other?: { identification: string; issuer?: string; schemeNameCode?: string; schemeNameProprietary?: string; }; }; country: string; name: string; id?: string; agent?: string; bankName?: string; }[]; additionalAttributes?: object; address?: { country: string; buildingName?: string; buildingNumber?: string; countrySubDivision?: string; districtName?: string; floor?: string; postBox?: string; postCode?: string; streetName?: string; suite?: string; townLocationName?: string; townName?: string; }; alias?: string; counterpartyId?: string; email?: string; individual?: { firstName: string; lastName: string; middleNames?: string; }; organisation?: { legalName?: string; }; phoneNumber?: string; }[]`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.parties.counterparties.search('6878951b-256b-4baa-9e81-ad4c577adc4e', { query: 'john.doe@' });\n\nconsole.log(response);\n```",
    perLanguage: {
      typescript: {
        method: 'client.parties.counterparties.search',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nconst response = await client.parties.counterparties.search(\n  '6878951b-256b-4baa-9e81-ad4c577adc4e',\n  { query: 'john.doe@' },\n);\n\nconsole.log(response.counterparties);",
      },
      python: {
        method: 'parties.counterparties.search',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nresponse = client.parties.counterparties.search(\n    party_id="6878951b-256b-4baa-9e81-ad4c577adc4e",\n    query="john.doe@",\n)\nprint(response.counterparties)',
      },
      java: {
        method: 'parties().counterparties().search',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.parties.counterparties.CounterpartySearchParams;\nimport com.plumery.api.models.parties.counterparties.CounterpartySearchResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        CounterpartySearchParams params = CounterpartySearchParams.builder()\n            .partyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n            .query("john.doe@")\n            .build();\n        CounterpartySearchResponse response = client.parties().counterparties().search(params);\n    }\n}',
      },
      kotlin: {
        method: 'parties().counterparties().search',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.parties.counterparties.CounterpartySearchParams\nimport com.plumery.api.models.parties.counterparties.CounterpartySearchResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: CounterpartySearchParams = CounterpartySearchParams.builder()\n        .partyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n        .query("john.doe@")\n        .build()\n    val response: CounterpartySearchResponse = client.parties().counterparties().search(params)\n}',
      },
      go: {
        method: 'client.Parties.Counterparties.Search',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tresponse, err := client.Parties.Counterparties.Search(\n\t\tcontext.TODO(),\n\t\t"6878951b-256b-4baa-9e81-ad4c577adc4e",\n\t\tplumery.PartyCounterpartySearchParams{\n\t\t\tQuery: plumery.F("john.doe@"),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.Counterparties)\n}\n',
      },
      cli: {
        method: 'counterparties search',
        example:
          "plumery parties:counterparties search \\\n  --session 'My Session' \\\n  --party-id 6878951b-256b-4baa-9e81-ad4c577adc4e \\\n  --query john.doe@",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/parties/$PARTY_ID/counterparties:search \\\n    -H \'Content-Type: application/json\' \\\n    -H "Cookie: $SESSION" \\\n    -d \'{\n          "query": "john.doe@"\n        }\'',
      },
    },
  },
  {
    name: 'remove',
    endpoint: '/api/v1/parties/{partyId}/counterparties/{counterpartyId}:remove',
    httpMethod: 'post',
    summary: 'Remove Counterparty',
    description:
      'Remove a specific counterparty identified by the counterpartyId path parameter for a specific party.\n',
    stainlessPath: '(resource) parties.counterparties > (method) remove',
    qualified: 'client.parties.counterparties.remove',
    params: ['partyId: string;', 'counterpartyId: string;', 'plmr-user-action?: boolean;'],
    markdown:
      "## remove\n\n`client.parties.counterparties.remove(partyId: string, counterpartyId: string, plmr-user-action?: boolean): void`\n\n**post** `/api/v1/parties/{partyId}/counterparties/{counterpartyId}:remove`\n\nRemove a specific counterparty identified by the counterpartyId path parameter for a specific party.\n\n\n### Parameters\n\n- `partyId: string`\n\n- `counterpartyId: string`\n\n- `plmr-user-action?: boolean`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nawait client.parties.counterparties.remove('xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', { partyId: '6878951b-256b-4baa-9e81-ad4c577adc4e' })\n```",
    perLanguage: {
      typescript: {
        method: 'client.parties.counterparties.remove',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nawait client.parties.counterparties.remove('xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', {\n  partyId: '6878951b-256b-4baa-9e81-ad4c577adc4e',\n});",
      },
      python: {
        method: 'parties.counterparties.remove',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nclient.parties.counterparties.remove(\n    counterparty_id="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",\n    party_id="6878951b-256b-4baa-9e81-ad4c577adc4e",\n)',
      },
      java: {
        method: 'parties().counterparties().remove',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.parties.counterparties.CounterpartyRemoveParams;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        CounterpartyRemoveParams params = CounterpartyRemoveParams.builder()\n            .partyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n            .counterpartyId("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx")\n            .build();\n        client.parties().counterparties().remove(params);\n    }\n}',
      },
      kotlin: {
        method: 'parties().counterparties().remove',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.parties.counterparties.CounterpartyRemoveParams\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: CounterpartyRemoveParams = CounterpartyRemoveParams.builder()\n        .partyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n        .counterpartyId("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx")\n        .build()\n    client.parties().counterparties().remove(params)\n}',
      },
      go: {
        method: 'client.Parties.Counterparties.Remove',
        example:
          'package main\n\nimport (\n\t"context"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\terr := client.Parties.Counterparties.Remove(\n\t\tcontext.TODO(),\n\t\t"6878951b-256b-4baa-9e81-ad4c577adc4e",\n\t\t"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",\n\t\tplumery.PartyCounterpartyRemoveParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
      },
      cli: {
        method: 'counterparties remove',
        example:
          "plumery parties:counterparties remove \\\n  --session 'My Session' \\\n  --party-id 6878951b-256b-4baa-9e81-ad4c577adc4e \\\n  --counterparty-id xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/parties/$PARTY_ID/counterparties/$COUNTERPARTY_ID:remove \\\n    -X POST \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'addPaymentMethod',
    endpoint: '/api/v1/parties/{partyId}/counterparties/{counterpartyId}:add-payment-method',
    httpMethod: 'post',
    summary: 'Add Payment Method',
    description: 'Add a new payment method on the counterparty identified by ID\n',
    stainlessPath: '(resource) parties.counterparties > (method) addPaymentMethod',
    qualified: 'client.parties.counterparties.addPaymentMethod',
    params: [
      'partyId: string;',
      'counterpartyId: string;',
      'account: { bban?: string; cashAccountType?: string; currency?: string; iban?: string; msisdn?: string; other?: { identification: string; issuer?: string; schemeNameCode?: string; schemeNameProprietary?: string; }; };',
      'country: string;',
      'name: string;',
      'agent?: string;',
      'bankName?: string;',
      'plmr-user-action?: boolean;',
    ],
    markdown:
      "## addPaymentMethod\n\n`client.parties.counterparties.addPaymentMethod(partyId: string, counterpartyId: string, account: { bban?: string; cashAccountType?: string; currency?: string; iban?: string; msisdn?: string; other?: { identification: string; issuer?: string; schemeNameCode?: string; schemeNameProprietary?: string; }; }, country: string, name: string, agent?: string, bankName?: string, plmr-user-action?: boolean): void`\n\n**post** `/api/v1/parties/{partyId}/counterparties/{counterpartyId}:add-payment-method`\n\nAdd a new payment method on the counterparty identified by ID\n\n\n### Parameters\n\n- `partyId: string`\n\n- `counterpartyId: string`\n\n- `account: { bban?: string; cashAccountType?: string; currency?: string; iban?: string; msisdn?: string; other?: { identification: string; issuer?: string; schemeNameCode?: string; schemeNameProprietary?: string; }; }`\n  Reference to a creditor account.\n\n  - `bban?: string`\n    Basic Bank Account Number (BBAN) Identifier.\n  - `cashAccountType?: string`\n    ExternalCashAccountType1Code from ISO 20022.\n  - `currency?: string`\n    ISO 4217 Alpha 3 currency code.\n\n  - `iban?: string`\n    IBAN of an account.\n  - `msisdn?: string`\n    Mobile phone number.\n  - `other?: { identification: string; issuer?: string; schemeNameCode?: string; schemeNameProprietary?: string; }`\n    In cases where the specifically defined criteria (IBAN, BBAN, MSISDN) are not provided to identify an instance of the respective account type (e.g. a savings account), the ASPSP shall include a proprietary ID of the respective account that uniquely identifies the account for this ASPSP.\n\n- `country: string`\n  Nation with its own government. ISO 3166, Alpha-2 code\n\n\n- `name: string`\n  The name of the method of payment\n\n\n- `agent?: string`\n  BICFI, the BIC/SWIFT code of the financial institution of the counterparty.\n\n\n- `bankName?: string`\n  The name of the bank\n\n\n- `plmr-user-action?: boolean`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nawait client.parties.counterparties.addPaymentMethod('xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', {\n  partyId: '6878951b-256b-4baa-9e81-ad4c577adc4e',\n  account: {},\n  country: 'FR',\n  name: 'name',\n})\n```",
    perLanguage: {
      typescript: {
        method: 'client.parties.counterparties.addPaymentMethod',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nawait client.parties.counterparties.addPaymentMethod('xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', {\n  partyId: '6878951b-256b-4baa-9e81-ad4c577adc4e',\n  account: {},\n  country: 'FR',\n  name: 'name',\n});",
      },
      python: {
        method: 'parties.counterparties.add_payment_method',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nclient.parties.counterparties.add_payment_method(\n    counterparty_id="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",\n    party_id="6878951b-256b-4baa-9e81-ad4c577adc4e",\n    account={},\n    country="FR",\n    name="name",\n)',
      },
      java: {
        method: 'parties().counterparties().addPaymentMethod',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.parties.counterparties.CounterpartyAddPaymentMethodParams;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        CounterpartyAddPaymentMethodParams params = CounterpartyAddPaymentMethodParams.builder()\n            .partyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n            .counterpartyId("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx")\n            .account(CounterpartyAddPaymentMethodParams.Account.builder().build())\n            .country("FR")\n            .name("name")\n            .build();\n        client.parties().counterparties().addPaymentMethod(params);\n    }\n}',
      },
      kotlin: {
        method: 'parties().counterparties().addPaymentMethod',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.parties.counterparties.CounterpartyAddPaymentMethodParams\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: CounterpartyAddPaymentMethodParams = CounterpartyAddPaymentMethodParams.builder()\n        .partyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n        .counterpartyId("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx")\n        .account(CounterpartyAddPaymentMethodParams.Account.builder().build())\n        .country("FR")\n        .name("name")\n        .build()\n    client.parties().counterparties().addPaymentMethod(params)\n}',
      },
      go: {
        method: 'client.Parties.Counterparties.AddPaymentMethod',
        example:
          'package main\n\nimport (\n\t"context"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\terr := client.Parties.Counterparties.AddPaymentMethod(\n\t\tcontext.TODO(),\n\t\t"6878951b-256b-4baa-9e81-ad4c577adc4e",\n\t\t"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",\n\t\tplumery.PartyCounterpartyAddPaymentMethodParams{\n\t\t\tAccount: plumery.F(plumery.PartyCounterpartyAddPaymentMethodParamsAccount{}),\n\t\t\tCountry: plumery.F("FR"),\n\t\t\tName:    plumery.F("name"),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
      },
      cli: {
        method: 'counterparties addPaymentMethod',
        example:
          "plumery parties:counterparties add-payment-method \\\n  --session 'My Session' \\\n  --party-id 6878951b-256b-4baa-9e81-ad4c577adc4e \\\n  --counterparty-id xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx \\\n  --account '{}' \\\n  --country FR \\\n  --name name",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/parties/$PARTY_ID/counterparties/$COUNTERPARTY_ID:add-payment-method \\\n    -H \'Content-Type: application/json\' \\\n    -H "Cookie: $SESSION" \\\n    -d \'{\n          "account": {},\n          "country": "FR",\n          "name": "name",\n          "agent": "AAAADEBBXXX",\n          "bankName": "ING Bank"\n        }\'',
      },
    },
  },
  {
    name: 'removePaymentMethod',
    endpoint: '/api/v1/parties/{partyId}/counterparties/{counterpartyId}:remove-payment-method',
    httpMethod: 'post',
    summary: 'Remove Payment Method',
    description: 'Remove a payment method for a counterparty identified by ID\n',
    stainlessPath: '(resource) parties.counterparties > (method) removePaymentMethod',
    qualified: 'client.parties.counterparties.removePaymentMethod',
    params: [
      'partyId: string;',
      'counterpartyId: string;',
      'paymentMethodId: string;',
      'plmr-user-action?: boolean;',
    ],
    markdown:
      "## removePaymentMethod\n\n`client.parties.counterparties.removePaymentMethod(partyId: string, counterpartyId: string, paymentMethodId: string, plmr-user-action?: boolean): void`\n\n**post** `/api/v1/parties/{partyId}/counterparties/{counterpartyId}:remove-payment-method`\n\nRemove a payment method for a counterparty identified by ID\n\n\n### Parameters\n\n- `partyId: string`\n\n- `counterpartyId: string`\n\n- `paymentMethodId: string`\n  The Id of the payment method to be removed.\n\n\n- `plmr-user-action?: boolean`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nawait client.parties.counterparties.removePaymentMethod('xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', { partyId: '6878951b-256b-4baa-9e81-ad4c577adc4e', paymentMethodId: '494bbc67-387c-4e5a-b625-00287a8fc5cc' })\n```",
    perLanguage: {
      typescript: {
        method: 'client.parties.counterparties.removePaymentMethod',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nawait client.parties.counterparties.removePaymentMethod('xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', {\n  partyId: '6878951b-256b-4baa-9e81-ad4c577adc4e',\n  paymentMethodId: '494bbc67-387c-4e5a-b625-00287a8fc5cc',\n});",
      },
      python: {
        method: 'parties.counterparties.remove_payment_method',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nclient.parties.counterparties.remove_payment_method(\n    counterparty_id="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",\n    party_id="6878951b-256b-4baa-9e81-ad4c577adc4e",\n    payment_method_id="494bbc67-387c-4e5a-b625-00287a8fc5cc",\n)',
      },
      java: {
        method: 'parties().counterparties().removePaymentMethod',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.parties.counterparties.CounterpartyRemovePaymentMethodParams;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        CounterpartyRemovePaymentMethodParams params = CounterpartyRemovePaymentMethodParams.builder()\n            .partyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n            .counterpartyId("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx")\n            .paymentMethodId("494bbc67-387c-4e5a-b625-00287a8fc5cc")\n            .build();\n        client.parties().counterparties().removePaymentMethod(params);\n    }\n}',
      },
      kotlin: {
        method: 'parties().counterparties().removePaymentMethod',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.parties.counterparties.CounterpartyRemovePaymentMethodParams\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: CounterpartyRemovePaymentMethodParams = CounterpartyRemovePaymentMethodParams.builder()\n        .partyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n        .counterpartyId("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx")\n        .paymentMethodId("494bbc67-387c-4e5a-b625-00287a8fc5cc")\n        .build()\n    client.parties().counterparties().removePaymentMethod(params)\n}',
      },
      go: {
        method: 'client.Parties.Counterparties.RemovePaymentMethod',
        example:
          'package main\n\nimport (\n\t"context"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\terr := client.Parties.Counterparties.RemovePaymentMethod(\n\t\tcontext.TODO(),\n\t\t"6878951b-256b-4baa-9e81-ad4c577adc4e",\n\t\t"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",\n\t\tplumery.PartyCounterpartyRemovePaymentMethodParams{\n\t\t\tPaymentMethodID: plumery.F("494bbc67-387c-4e5a-b625-00287a8fc5cc"),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
      },
      cli: {
        method: 'counterparties removePaymentMethod',
        example:
          "plumery parties:counterparties remove-payment-method \\\n  --session 'My Session' \\\n  --party-id 6878951b-256b-4baa-9e81-ad4c577adc4e \\\n  --counterparty-id xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx \\\n  --payment-method-id 494bbc67-387c-4e5a-b625-00287a8fc5cc",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/parties/$PARTY_ID/counterparties/$COUNTERPARTY_ID:remove-payment-method \\\n    -H \'Content-Type: application/json\' \\\n    -H "Cookie: $SESSION" \\\n    -d \'{\n          "paymentMethodId": "494bbc67-387c-4e5a-b625-00287a8fc5cc"\n        }\'',
      },
    },
  },
  {
    name: 'updateDetails',
    endpoint: '/api/v1/parties/{partyId}/counterparties/{counterpartyId}:update-details',
    httpMethod: 'post',
    summary: 'Update Counterparty Details',
    description: 'Update a counterparty details for the counterparty identified by ID\n',
    stainlessPath: '(resource) parties.counterparties > (method) updateDetails',
    qualified: 'client.parties.counterparties.updateDetails',
    params: [
      'partyId: string;',
      'counterpartyId: string;',
      'address?: { country: string; buildingName?: string; buildingNumber?: string; countrySubDivision?: string; districtName?: string; floor?: string; postBox?: string; postCode?: string; streetName?: string; suite?: string; townLocationName?: string; townName?: string; };',
      'alias?: string;',
      'email?: string;',
      'individual?: { firstName: string; lastName: string; middleNames?: string; };',
      'organisation?: { legalName?: string; };',
      'phoneNumber?: string;',
      'plmr-user-action?: boolean;',
    ],
    markdown:
      "## updateDetails\n\n`client.parties.counterparties.updateDetails(partyId: string, counterpartyId: string, address?: { country: string; buildingName?: string; buildingNumber?: string; countrySubDivision?: string; districtName?: string; floor?: string; postBox?: string; postCode?: string; streetName?: string; suite?: string; townLocationName?: string; townName?: string; }, alias?: string, email?: string, individual?: { firstName: string; lastName: string; middleNames?: string; }, organisation?: { legalName?: string; }, phoneNumber?: string, plmr-user-action?: boolean): void`\n\n**post** `/api/v1/parties/{partyId}/counterparties/{counterpartyId}:update-details`\n\nUpdate a counterparty details for the counterparty identified by ID\n\n\n### Parameters\n\n- `partyId: string`\n\n- `counterpartyId: string`\n\n- `address?: { country: string; buildingName?: string; buildingNumber?: string; countrySubDivision?: string; districtName?: string; floor?: string; postBox?: string; postCode?: string; streetName?: string; suite?: string; townLocationName?: string; townName?: string; }`\n  - `country: string`\n    Nation with its own government. ISO 3166, Alpha-2 code\n\n  - `buildingName?: string`\n    Name of the building or house\n\n  - `buildingNumber?: string`\n    Number that identifies the position of a building on a street\n\n  - `countrySubDivision?: string`\n    Identifies a subdivision of a country such as state, region, county\n\n  - `districtName?: string`\n    Identifies a subdivision within a country sub-division\n\n  - `floor?: string`\n    Floor or storey within a building\n\n  - `postBox?: string`\n    Numbered box in a post office, assigned to a person or organisation, where letters are kept until called for\n\n  - `postCode?: string`\n    Identifier consisting of a group of letters and/or numbers that is added to a postal address to assist the sorting of mail\n\n  - `streetName?: string`\n    Name of a street or thoroughfare\n\n  - `suite?: string`\n    Building room number\n\n  - `townLocationName?: string`\n    Specific location name within the town\n\n  - `townName?: string`\n    Name of a built-up area, with defined boundaries, and a local government\n\n\n- `alias?: string`\n  Display alias of the counterparty, as defined by the user.\n\n- `email?: string`\n  Email address of the counterparty\n\n- `individual?: { firstName: string; lastName: string; middleNames?: string; }`\n  The name of the individual in case the counterparty is an individual. Either **organisation** or **individual** should be provided.\n\n  - `firstName: string`\n  - `lastName: string`\n  - `middleNames?: string`\n\n- `organisation?: { legalName?: string; }`\n  The name of the individual in case the counterparty is an individual. Either **organisation** or **individual** should be provided.\n\n  - `legalName?: string`\n\n- `phoneNumber?: string`\n  Phone number of the counterparty\n\n\n- `plmr-user-action?: boolean`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nawait client.parties.counterparties.updateDetails('xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', { partyId: '6878951b-256b-4baa-9e81-ad4c577adc4e' })\n```",
    perLanguage: {
      typescript: {
        method: 'client.parties.counterparties.updateDetails',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nawait client.parties.counterparties.updateDetails('xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', {\n  partyId: '6878951b-256b-4baa-9e81-ad4c577adc4e',\n});",
      },
      python: {
        method: 'parties.counterparties.update_details',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nclient.parties.counterparties.update_details(\n    counterparty_id="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",\n    party_id="6878951b-256b-4baa-9e81-ad4c577adc4e",\n)',
      },
      java: {
        method: 'parties().counterparties().updateDetails',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.parties.counterparties.CounterpartyUpdateDetailsParams;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        CounterpartyUpdateDetailsParams params = CounterpartyUpdateDetailsParams.builder()\n            .partyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n            .counterpartyId("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx")\n            .build();\n        client.parties().counterparties().updateDetails(params);\n    }\n}',
      },
      kotlin: {
        method: 'parties().counterparties().updateDetails',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.parties.counterparties.CounterpartyUpdateDetailsParams\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: CounterpartyUpdateDetailsParams = CounterpartyUpdateDetailsParams.builder()\n        .partyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n        .counterpartyId("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx")\n        .build()\n    client.parties().counterparties().updateDetails(params)\n}',
      },
      go: {
        method: 'client.Parties.Counterparties.UpdateDetails',
        example:
          'package main\n\nimport (\n\t"context"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\terr := client.Parties.Counterparties.UpdateDetails(\n\t\tcontext.TODO(),\n\t\t"6878951b-256b-4baa-9e81-ad4c577adc4e",\n\t\t"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",\n\t\tplumery.PartyCounterpartyUpdateDetailsParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
      },
      cli: {
        method: 'counterparties updateDetails',
        example:
          "plumery parties:counterparties update-details \\\n  --session 'My Session' \\\n  --party-id 6878951b-256b-4baa-9e81-ad4c577adc4e \\\n  --counterparty-id xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/parties/$PARTY_ID/counterparties/$COUNTERPARTY_ID:update-details \\\n    -H \'Content-Type: application/json\' \\\n    -H "Cookie: $SESSION" \\\n    -d \'{\n          "alias": "Mum",\n          "email": "john.doe@example.com",\n          "phoneNumber": "+1669910"\n        }\'',
      },
    },
  },
  {
    name: 'retrieve',
    endpoint: '/api/v1/parties/individuals/{individualPartyId}',
    httpMethod: 'get',
    summary: 'Retrieve an Individual Party',
    description: 'Allows retrieval of an individual party, fetched by its ID.',
    stainlessPath: '(resource) parties.individuals > (method) retrieve',
    qualified: 'client.parties.individuals.retrieve',
    params: ['individualPartyId: string;', 'plmr-user-action?: boolean;'],
    response:
      '{ dateOfBirth?: string; firstName?: string; lastName?: string; middleNames?: string; postalAddress?: { country: string; buildingName?: string; buildingNumber?: string; countrySubDivision?: string; districtName?: string; floor?: string; postBox?: string; postCode?: string; streetName?: string; suite?: string; townLocationName?: string; townName?: string; }; registrationAddress?: { country: string; buildingName?: string; buildingNumber?: string; countrySubDivision?: string; districtName?: string; floor?: string; postBox?: string; postCode?: string; streetName?: string; suite?: string; townLocationName?: string; townName?: string; }; salutation?: string; title?: string; }',
    markdown:
      "## retrieve\n\n`client.parties.individuals.retrieve(individualPartyId: string, plmr-user-action?: boolean): { dateOfBirth?: string; firstName?: string; lastName?: string; middleNames?: string; postalAddress?: object; registrationAddress?: object; salutation?: string; title?: string; }`\n\n**get** `/api/v1/parties/individuals/{individualPartyId}`\n\nAllows retrieval of an individual party, fetched by its ID.\n\n### Parameters\n\n- `individualPartyId: string`\n\n- `plmr-user-action?: boolean`\n\n### Returns\n\n- `{ dateOfBirth?: string; firstName?: string; lastName?: string; middleNames?: string; postalAddress?: { country: string; buildingName?: string; buildingNumber?: string; countrySubDivision?: string; districtName?: string; floor?: string; postBox?: string; postCode?: string; streetName?: string; suite?: string; townLocationName?: string; townName?: string; }; registrationAddress?: { country: string; buildingName?: string; buildingNumber?: string; countrySubDivision?: string; districtName?: string; floor?: string; postBox?: string; postCode?: string; streetName?: string; suite?: string; townLocationName?: string; townName?: string; }; salutation?: string; title?: string; }`\n\n  - `dateOfBirth?: string`\n  - `firstName?: string`\n  - `lastName?: string`\n  - `middleNames?: string`\n  - `postalAddress?: { country: string; buildingName?: string; buildingNumber?: string; countrySubDivision?: string; districtName?: string; floor?: string; postBox?: string; postCode?: string; streetName?: string; suite?: string; townLocationName?: string; townName?: string; }`\n  - `registrationAddress?: { country: string; buildingName?: string; buildingNumber?: string; countrySubDivision?: string; districtName?: string; floor?: string; postBox?: string; postCode?: string; streetName?: string; suite?: string; townLocationName?: string; townName?: string; }`\n  - `salutation?: string`\n  - `title?: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst individual = await client.parties.individuals.retrieve('6878951b-256b-4baa-9e81-ad4c577adc4e');\n\nconsole.log(individual);\n```",
    perLanguage: {
      typescript: {
        method: 'client.parties.individuals.retrieve',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nconst individual = await client.parties.individuals.retrieve(\n  '6878951b-256b-4baa-9e81-ad4c577adc4e',\n);\n\nconsole.log(individual.middleNames);",
      },
      python: {
        method: 'parties.individuals.retrieve',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nindividual = client.parties.individuals.retrieve(\n    individual_party_id="6878951b-256b-4baa-9e81-ad4c577adc4e",\n)\nprint(individual.middle_names)',
      },
      java: {
        method: 'parties().individuals().retrieve',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.parties.individuals.IndividualRetrieveParams;\nimport com.plumery.api.models.parties.individuals.IndividualRetrieveResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        IndividualRetrieveResponse individual = client.parties().individuals().retrieve("6878951b-256b-4baa-9e81-ad4c577adc4e");\n    }\n}',
      },
      kotlin: {
        method: 'parties().individuals().retrieve',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.parties.individuals.IndividualRetrieveParams\nimport com.plumery.api.models.parties.individuals.IndividualRetrieveResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val individual: IndividualRetrieveResponse = client.parties().individuals().retrieve("6878951b-256b-4baa-9e81-ad4c577adc4e")\n}',
      },
      go: {
        method: 'client.Parties.Individuals.Get',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tindividual, err := client.Parties.Individuals.Get(\n\t\tcontext.TODO(),\n\t\t"6878951b-256b-4baa-9e81-ad4c577adc4e",\n\t\tplumery.PartyIndividualGetParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", individual.MiddleNames)\n}\n',
      },
      cli: {
        method: 'individuals retrieve',
        example:
          "plumery parties:individuals retrieve \\\n  --session 'My Session' \\\n  --individual-party-id 6878951b-256b-4baa-9e81-ad4c577adc4e",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/parties/individuals/$INDIVIDUAL_PARTY_ID \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'updatePostalAddress',
    endpoint: '/api/v1/parties/individuals/{individualPartyId}:update-postal-address',
    httpMethod: 'post',
    summary: 'Update Postal Address of an Individual',
    description: "Modifies an individual party's postal address based on their ID.",
    stainlessPath: '(resource) parties.individuals > (method) updatePostalAddress',
    qualified: 'client.parties.individuals.updatePostalAddress',
    params: [
      'individualPartyId: string;',
      'country: string;',
      'buildingName?: string;',
      'buildingNumber?: string;',
      'countrySubDivision?: string;',
      'districtName?: string;',
      'floor?: string;',
      'postBox?: string;',
      'postCode?: string;',
      'streetName?: string;',
      'suite?: string;',
      'townLocationName?: string;',
      'townName?: string;',
      'plmr-user-action?: boolean;',
    ],
    markdown:
      "## updatePostalAddress\n\n`client.parties.individuals.updatePostalAddress(individualPartyId: string, country: string, buildingName?: string, buildingNumber?: string, countrySubDivision?: string, districtName?: string, floor?: string, postBox?: string, postCode?: string, streetName?: string, suite?: string, townLocationName?: string, townName?: string, plmr-user-action?: boolean): void`\n\n**post** `/api/v1/parties/individuals/{individualPartyId}:update-postal-address`\n\nModifies an individual party's postal address based on their ID.\n\n### Parameters\n\n- `individualPartyId: string`\n\n- `country: string`\n  Nation with its own government. ISO 3166, Alpha-2 code\n\n\n- `buildingName?: string`\n  Name of the building or house\n\n\n- `buildingNumber?: string`\n  Number that identifies the position of a building on a street\n\n\n- `countrySubDivision?: string`\n  Identifies a subdivision of a country such as state, region, county\n\n\n- `districtName?: string`\n  Identifies a subdivision within a country sub-division\n\n\n- `floor?: string`\n  Floor or storey within a building\n\n\n- `postBox?: string`\n  Numbered box in a post office, assigned to a person or organisation, where letters are kept until called for\n\n\n- `postCode?: string`\n  Identifier consisting of a group of letters and/or numbers that is added to a postal address to assist the sorting of mail\n\n\n- `streetName?: string`\n  Name of a street or thoroughfare\n\n\n- `suite?: string`\n  Building room number\n\n\n- `townLocationName?: string`\n  Specific location name within the town\n\n\n- `townName?: string`\n  Name of a built-up area, with defined boundaries, and a local government\n\n\n- `plmr-user-action?: boolean`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nawait client.parties.individuals.updatePostalAddress('6878951b-256b-4baa-9e81-ad4c577adc4e', { country: 'US' })\n```",
    perLanguage: {
      typescript: {
        method: 'client.parties.individuals.updatePostalAddress',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nawait client.parties.individuals.updatePostalAddress('6878951b-256b-4baa-9e81-ad4c577adc4e', {\n  country: 'US',\n});",
      },
      python: {
        method: 'parties.individuals.update_postal_address',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nclient.parties.individuals.update_postal_address(\n    individual_party_id="6878951b-256b-4baa-9e81-ad4c577adc4e",\n    country="US",\n)',
      },
      java: {
        method: 'parties().individuals().updatePostalAddress',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.parties.individuals.IndividualUpdatePostalAddressParams;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        IndividualUpdatePostalAddressParams params = IndividualUpdatePostalAddressParams.builder()\n            .individualPartyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n            .country("US")\n            .build();\n        client.parties().individuals().updatePostalAddress(params);\n    }\n}',
      },
      kotlin: {
        method: 'parties().individuals().updatePostalAddress',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.parties.individuals.IndividualUpdatePostalAddressParams\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: IndividualUpdatePostalAddressParams = IndividualUpdatePostalAddressParams.builder()\n        .individualPartyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n        .country("US")\n        .build()\n    client.parties().individuals().updatePostalAddress(params)\n}',
      },
      go: {
        method: 'client.Parties.Individuals.UpdatePostalAddress',
        example:
          'package main\n\nimport (\n\t"context"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\terr := client.Parties.Individuals.UpdatePostalAddress(\n\t\tcontext.TODO(),\n\t\t"6878951b-256b-4baa-9e81-ad4c577adc4e",\n\t\tplumery.PartyIndividualUpdatePostalAddressParams{\n\t\t\tCountry: plumery.F("US"),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
      },
      cli: {
        method: 'individuals updatePostalAddress',
        example:
          "plumery parties:individuals update-postal-address \\\n  --session 'My Session' \\\n  --individual-party-id 6878951b-256b-4baa-9e81-ad4c577adc4e \\\n  --country US",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/parties/individuals/$INDIVIDUAL_PARTY_ID:update-postal-address \\\n    -H \'Content-Type: application/json\' \\\n    -H "Cookie: $SESSION" \\\n    -d \'{\n          "country": "US",\n          "buildingName": "Empire State Building",\n          "buildingNumber": "123",\n          "countrySubDivision": "New York State",\n          "districtName": "Financial District",\n          "floor": "5",\n          "postBox": "PO Box 789",\n          "postCode": "90210",\n          "streetName": "Main St",\n          "suite": "Suite 101",\n          "townLocationName": "Manhattan",\n          "townName": "New York"\n        }\'',
      },
    },
  },
  {
    name: 'updateRegistrationAddress',
    endpoint: '/api/v1/parties/individuals/{individualPartyId}:update-registration-address',
    httpMethod: 'post',
    summary: 'Update Registration Address of an Individual',
    description: "Modifies an individual party's registration address based on their ID.",
    stainlessPath: '(resource) parties.individuals > (method) updateRegistrationAddress',
    qualified: 'client.parties.individuals.updateRegistrationAddress',
    params: [
      'individualPartyId: string;',
      'country: string;',
      'buildingName?: string;',
      'buildingNumber?: string;',
      'countrySubDivision?: string;',
      'districtName?: string;',
      'floor?: string;',
      'postBox?: string;',
      'postCode?: string;',
      'streetName?: string;',
      'suite?: string;',
      'townLocationName?: string;',
      'townName?: string;',
      'plmr-user-action?: boolean;',
    ],
    markdown:
      "## updateRegistrationAddress\n\n`client.parties.individuals.updateRegistrationAddress(individualPartyId: string, country: string, buildingName?: string, buildingNumber?: string, countrySubDivision?: string, districtName?: string, floor?: string, postBox?: string, postCode?: string, streetName?: string, suite?: string, townLocationName?: string, townName?: string, plmr-user-action?: boolean): void`\n\n**post** `/api/v1/parties/individuals/{individualPartyId}:update-registration-address`\n\nModifies an individual party's registration address based on their ID.\n\n### Parameters\n\n- `individualPartyId: string`\n\n- `country: string`\n  Nation with its own government. ISO 3166, Alpha-2 code\n\n\n- `buildingName?: string`\n  Name of the building or house\n\n\n- `buildingNumber?: string`\n  Number that identifies the position of a building on a street\n\n\n- `countrySubDivision?: string`\n  Identifies a subdivision of a country such as state, region, county\n\n\n- `districtName?: string`\n  Identifies a subdivision within a country sub-division\n\n\n- `floor?: string`\n  Floor or storey within a building\n\n\n- `postBox?: string`\n  Numbered box in a post office, assigned to a person or organisation, where letters are kept until called for\n\n\n- `postCode?: string`\n  Identifier consisting of a group of letters and/or numbers that is added to a postal address to assist the sorting of mail\n\n\n- `streetName?: string`\n  Name of a street or thoroughfare\n\n\n- `suite?: string`\n  Building room number\n\n\n- `townLocationName?: string`\n  Specific location name within the town\n\n\n- `townName?: string`\n  Name of a built-up area, with defined boundaries, and a local government\n\n\n- `plmr-user-action?: boolean`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nawait client.parties.individuals.updateRegistrationAddress('6878951b-256b-4baa-9e81-ad4c577adc4e', { country: 'US' })\n```",
    perLanguage: {
      typescript: {
        method: 'client.parties.individuals.updateRegistrationAddress',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nawait client.parties.individuals.updateRegistrationAddress('6878951b-256b-4baa-9e81-ad4c577adc4e', {\n  country: 'US',\n});",
      },
      python: {
        method: 'parties.individuals.update_registration_address',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nclient.parties.individuals.update_registration_address(\n    individual_party_id="6878951b-256b-4baa-9e81-ad4c577adc4e",\n    country="US",\n)',
      },
      java: {
        method: 'parties().individuals().updateRegistrationAddress',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.parties.individuals.IndividualUpdateRegistrationAddressParams;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        IndividualUpdateRegistrationAddressParams params = IndividualUpdateRegistrationAddressParams.builder()\n            .individualPartyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n            .country("US")\n            .build();\n        client.parties().individuals().updateRegistrationAddress(params);\n    }\n}',
      },
      kotlin: {
        method: 'parties().individuals().updateRegistrationAddress',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.parties.individuals.IndividualUpdateRegistrationAddressParams\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: IndividualUpdateRegistrationAddressParams = IndividualUpdateRegistrationAddressParams.builder()\n        .individualPartyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n        .country("US")\n        .build()\n    client.parties().individuals().updateRegistrationAddress(params)\n}',
      },
      go: {
        method: 'client.Parties.Individuals.UpdateRegistrationAddress',
        example:
          'package main\n\nimport (\n\t"context"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\terr := client.Parties.Individuals.UpdateRegistrationAddress(\n\t\tcontext.TODO(),\n\t\t"6878951b-256b-4baa-9e81-ad4c577adc4e",\n\t\tplumery.PartyIndividualUpdateRegistrationAddressParams{\n\t\t\tCountry: plumery.F("US"),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
      },
      cli: {
        method: 'individuals updateRegistrationAddress',
        example:
          "plumery parties:individuals update-registration-address \\\n  --session 'My Session' \\\n  --individual-party-id 6878951b-256b-4baa-9e81-ad4c577adc4e \\\n  --country US",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/parties/individuals/$INDIVIDUAL_PARTY_ID:update-registration-address \\\n    -H \'Content-Type: application/json\' \\\n    -H "Cookie: $SESSION" \\\n    -d \'{\n          "country": "US",\n          "buildingName": "Empire State Building",\n          "buildingNumber": "123",\n          "countrySubDivision": "New York State",\n          "districtName": "Financial District",\n          "floor": "5",\n          "postBox": "PO Box 789",\n          "postCode": "90210",\n          "streetName": "Main St",\n          "suite": "Suite 101",\n          "townLocationName": "Manhattan",\n          "townName": "New York"\n        }\'',
      },
    },
  },
  {
    name: 'list',
    endpoint: '/api/v1/parties/individuals/{individualPartyId}/tax-identifications',
    httpMethod: 'get',
    summary: 'List Tax Identifications of an Individual',
    description: 'Allows retrieval of all of the given individual party tax identifications.',
    stainlessPath: '(resource) parties.individuals.tax-identifications > (method) list',
    qualified: 'client.parties.individuals.taxIdentifications.list',
    params: ['individualPartyId: string;', 'plmr-user-action?: boolean;'],
    response:
      "{ taxIdentifications?: { id: string; country?: string; primary?: boolean; reasonDescription?: string; reasonNoTin?: 'NOT_ASSIGNED_YET' | 'NOT_ASSIGNED_BY_COUNTRY' | 'OTHER'; tin?: string; }[]; }",
    markdown:
      "## list\n\n`client.parties.individuals.taxIdentifications.list(individualPartyId: string, plmr-user-action?: boolean): { taxIdentifications?: object[]; }`\n\n**get** `/api/v1/parties/individuals/{individualPartyId}/tax-identifications`\n\nAllows retrieval of all of the given individual party tax identifications.\n\n### Parameters\n\n- `individualPartyId: string`\n\n- `plmr-user-action?: boolean`\n\n### Returns\n\n- `{ taxIdentifications?: { id: string; country?: string; primary?: boolean; reasonDescription?: string; reasonNoTin?: 'NOT_ASSIGNED_YET' | 'NOT_ASSIGNED_BY_COUNTRY' | 'OTHER'; tin?: string; }[]; }`\n\n  - `taxIdentifications?: { id: string; country?: string; primary?: boolean; reasonDescription?: string; reasonNoTin?: 'NOT_ASSIGNED_YET' | 'NOT_ASSIGNED_BY_COUNTRY' | 'OTHER'; tin?: string; }[]`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst taxIdentifications = await client.parties.individuals.taxIdentifications.list('6878951b-256b-4baa-9e81-ad4c577adc4e');\n\nconsole.log(taxIdentifications);\n```",
    perLanguage: {
      typescript: {
        method: 'client.parties.individuals.taxIdentifications.list',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nconst taxIdentifications = await client.parties.individuals.taxIdentifications.list(\n  '6878951b-256b-4baa-9e81-ad4c577adc4e',\n);\n\nconsole.log(taxIdentifications.taxIdentifications);",
      },
      python: {
        method: 'parties.individuals.tax_identifications.list',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\ntax_identifications = client.parties.individuals.tax_identifications.list(\n    individual_party_id="6878951b-256b-4baa-9e81-ad4c577adc4e",\n)\nprint(tax_identifications.tax_identifications)',
      },
      java: {
        method: 'parties().individuals().taxIdentifications().list',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.parties.individuals.taxidentifications.TaxIdentificationListParams;\nimport com.plumery.api.models.parties.individuals.taxidentifications.TaxIdentificationListResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        TaxIdentificationListResponse taxIdentifications = client.parties().individuals().taxIdentifications().list("6878951b-256b-4baa-9e81-ad4c577adc4e");\n    }\n}',
      },
      kotlin: {
        method: 'parties().individuals().taxIdentifications().list',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.parties.individuals.taxidentifications.TaxIdentificationListParams\nimport com.plumery.api.models.parties.individuals.taxidentifications.TaxIdentificationListResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val taxIdentifications: TaxIdentificationListResponse = client.parties().individuals().taxIdentifications().list("6878951b-256b-4baa-9e81-ad4c577adc4e")\n}',
      },
      go: {
        method: 'client.Parties.Individuals.TaxIdentifications.List',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\ttaxIdentifications, err := client.Parties.Individuals.TaxIdentifications.List(\n\t\tcontext.TODO(),\n\t\t"6878951b-256b-4baa-9e81-ad4c577adc4e",\n\t\tplumery.PartyIndividualTaxIdentificationListParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", taxIdentifications.TaxIdentifications)\n}\n',
      },
      cli: {
        method: 'tax-identifications list',
        example:
          "plumery parties:individuals:tax-identifications list \\\n  --session 'My Session' \\\n  --individual-party-id 6878951b-256b-4baa-9e81-ad4c577adc4e",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/parties/individuals/$INDIVIDUAL_PARTY_ID/tax-identifications \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'retrieve',
    endpoint: '/api/v1/parties/individuals/{individualPartyId}/tax-identifications/{taxIdentificationId}',
    httpMethod: 'get',
    summary: 'Retrieve Tax Identification of an Individual',
    description: 'Allows retrieval of a single tax identification, fetched by its ID.',
    stainlessPath: '(resource) parties.individuals.tax-identifications > (method) retrieve',
    qualified: 'client.parties.individuals.taxIdentifications.retrieve',
    params: ['individualPartyId: string;', 'taxIdentificationId: string;', 'plmr-user-action?: boolean;'],
    response:
      "{ id: string; country?: string; primary?: boolean; reasonDescription?: string; reasonNoTin?: 'NOT_ASSIGNED_YET' | 'NOT_ASSIGNED_BY_COUNTRY' | 'OTHER'; tin?: string; }",
    markdown:
      "## retrieve\n\n`client.parties.individuals.taxIdentifications.retrieve(individualPartyId: string, taxIdentificationId: string, plmr-user-action?: boolean): { id: string; country?: string; primary?: boolean; reasonDescription?: string; reasonNoTin?: 'NOT_ASSIGNED_YET' | 'NOT_ASSIGNED_BY_COUNTRY' | 'OTHER'; tin?: string; }`\n\n**get** `/api/v1/parties/individuals/{individualPartyId}/tax-identifications/{taxIdentificationId}`\n\nAllows retrieval of a single tax identification, fetched by its ID.\n\n### Parameters\n\n- `individualPartyId: string`\n\n- `taxIdentificationId: string`\n\n- `plmr-user-action?: boolean`\n\n### Returns\n\n- `{ id: string; country?: string; primary?: boolean; reasonDescription?: string; reasonNoTin?: 'NOT_ASSIGNED_YET' | 'NOT_ASSIGNED_BY_COUNTRY' | 'OTHER'; tin?: string; }`\n\n  - `id: string`\n  - `country?: string`\n  - `primary?: boolean`\n  - `reasonDescription?: string`\n  - `reasonNoTin?: 'NOT_ASSIGNED_YET' | 'NOT_ASSIGNED_BY_COUNTRY' | 'OTHER'`\n  - `tin?: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst taxIdentification = await client.parties.individuals.taxIdentifications.retrieve('123456789', { individualPartyId: '6878951b-256b-4baa-9e81-ad4c577adc4e' });\n\nconsole.log(taxIdentification);\n```",
    perLanguage: {
      typescript: {
        method: 'client.parties.individuals.taxIdentifications.retrieve',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nconst taxIdentification = await client.parties.individuals.taxIdentifications.retrieve(\n  '123456789',\n  { individualPartyId: '6878951b-256b-4baa-9e81-ad4c577adc4e' },\n);\n\nconsole.log(taxIdentification.id);",
      },
      python: {
        method: 'parties.individuals.tax_identifications.retrieve',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\ntax_identification = client.parties.individuals.tax_identifications.retrieve(\n    tax_identification_id="123456789",\n    individual_party_id="6878951b-256b-4baa-9e81-ad4c577adc4e",\n)\nprint(tax_identification.id)',
      },
      java: {
        method: 'parties().individuals().taxIdentifications().retrieve',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.parties.individuals.taxidentifications.TaxIdentificationRetrieveParams;\nimport com.plumery.api.models.parties.individuals.taxidentifications.TaxIdentificationRetrieveResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        TaxIdentificationRetrieveParams params = TaxIdentificationRetrieveParams.builder()\n            .individualPartyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n            .taxIdentificationId("123456789")\n            .build();\n        TaxIdentificationRetrieveResponse taxIdentification = client.parties().individuals().taxIdentifications().retrieve(params);\n    }\n}',
      },
      kotlin: {
        method: 'parties().individuals().taxIdentifications().retrieve',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.parties.individuals.taxidentifications.TaxIdentificationRetrieveParams\nimport com.plumery.api.models.parties.individuals.taxidentifications.TaxIdentificationRetrieveResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: TaxIdentificationRetrieveParams = TaxIdentificationRetrieveParams.builder()\n        .individualPartyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n        .taxIdentificationId("123456789")\n        .build()\n    val taxIdentification: TaxIdentificationRetrieveResponse = client.parties().individuals().taxIdentifications().retrieve(params)\n}',
      },
      go: {
        method: 'client.Parties.Individuals.TaxIdentifications.Get',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\ttaxIdentification, err := client.Parties.Individuals.TaxIdentifications.Get(\n\t\tcontext.TODO(),\n\t\t"6878951b-256b-4baa-9e81-ad4c577adc4e",\n\t\t"123456789",\n\t\tplumery.PartyIndividualTaxIdentificationGetParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", taxIdentification.ID)\n}\n',
      },
      cli: {
        method: 'tax-identifications retrieve',
        example:
          "plumery parties:individuals:tax-identifications retrieve \\\n  --session 'My Session' \\\n  --individual-party-id 6878951b-256b-4baa-9e81-ad4c577adc4e \\\n  --tax-identification-id 123456789",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/parties/individuals/$INDIVIDUAL_PARTY_ID/tax-identifications/$TAX_IDENTIFICATION_ID \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'updateTaxIdentification',
    endpoint:
      '/api/v1/parties/individuals/{individualPartyId}/tax-identifications/{taxIdentificationId}:updateTaxIdentification',
    httpMethod: 'post',
    summary: 'Update Tax Identification of an Individual',
    description:
      "**[Marked as internal as it was not implemented yet]** Modifies an individual party's tax identification based on its ID.",
    stainlessPath: '(resource) parties.individuals.tax-identifications > (method) updateTaxIdentification',
    qualified: 'client.parties.individuals.taxIdentifications.updateTaxIdentification',
    params: [
      'individualPartyId: string;',
      'taxIdentificationId: string;',
      'id: string;',
      'country?: string;',
      'primary?: boolean;',
      'reasonDescription?: string;',
      "reasonNoTin?: 'NOT_ASSIGNED_YET' | 'NOT_ASSIGNED_BY_COUNTRY' | 'OTHER';",
      'tin?: string;',
      'plmr-user-action?: boolean;',
    ],
    markdown:
      "## updateTaxIdentification\n\n`client.parties.individuals.taxIdentifications.updateTaxIdentification(individualPartyId: string, taxIdentificationId: string, id: string, country?: string, primary?: boolean, reasonDescription?: string, reasonNoTin?: 'NOT_ASSIGNED_YET' | 'NOT_ASSIGNED_BY_COUNTRY' | 'OTHER', tin?: string, plmr-user-action?: boolean): void`\n\n**post** `/api/v1/parties/individuals/{individualPartyId}/tax-identifications/{taxIdentificationId}:updateTaxIdentification`\n\n**[Marked as internal as it was not implemented yet]** Modifies an individual party's tax identification based on its ID.\n\n### Parameters\n\n- `individualPartyId: string`\n\n- `taxIdentificationId: string`\n\n- `id: string`\n  Unique identifier for the tax identification record\n\n- `country?: string`\n  ISO 3166-1 alpha-2 country code where the TIN is issued\n\n- `primary?: boolean`\n  Indicates if this TIN is the primary one for the individual\n\n- `reasonDescription?: string`\n  Additional context around why there is no TIN. Only required if OTHER was the value for the reasonNoTin field\n\n\n- `reasonNoTin?: 'NOT_ASSIGNED_YET' | 'NOT_ASSIGNED_BY_COUNTRY' | 'OTHER'`\n  Reason code for why a TIN is not provided\n\n- `tin?: string`\n  Tax Identification Number assigned by the tax authority\n\n- `plmr-user-action?: boolean`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nawait client.parties.individuals.taxIdentifications.updateTaxIdentification('123456789', { individualPartyId: '6878951b-256b-4baa-9e81-ad4c577adc4e', id: '1178951b-256b-4baa-9e81-ad4c577adc4e' })\n```",
    perLanguage: {
      typescript: {
        method: 'client.parties.individuals.taxIdentifications.updateTaxIdentification',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nawait client.parties.individuals.taxIdentifications.updateTaxIdentification('123456789', {\n  individualPartyId: '6878951b-256b-4baa-9e81-ad4c577adc4e',\n  id: '1178951b-256b-4baa-9e81-ad4c577adc4e',\n});",
      },
      python: {
        method: 'parties.individuals.tax_identifications.update_tax_identification',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nclient.parties.individuals.tax_identifications.update_tax_identification(\n    tax_identification_id="123456789",\n    individual_party_id="6878951b-256b-4baa-9e81-ad4c577adc4e",\n    id="1178951b-256b-4baa-9e81-ad4c577adc4e",\n)',
      },
      java: {
        method: 'parties().individuals().taxIdentifications().updateTaxIdentification',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.parties.individuals.taxidentifications.TaxIdentificationUpdateTaxIdentificationParams;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        TaxIdentificationUpdateTaxIdentificationParams params = TaxIdentificationUpdateTaxIdentificationParams.builder()\n            .individualPartyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n            .taxIdentificationId("123456789")\n            .id("1178951b-256b-4baa-9e81-ad4c577adc4e")\n            .build();\n        client.parties().individuals().taxIdentifications().updateTaxIdentification(params);\n    }\n}',
      },
      kotlin: {
        method: 'parties().individuals().taxIdentifications().updateTaxIdentification',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.parties.individuals.taxidentifications.TaxIdentificationUpdateTaxIdentificationParams\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: TaxIdentificationUpdateTaxIdentificationParams = TaxIdentificationUpdateTaxIdentificationParams.builder()\n        .individualPartyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n        .taxIdentificationId("123456789")\n        .id("1178951b-256b-4baa-9e81-ad4c577adc4e")\n        .build()\n    client.parties().individuals().taxIdentifications().updateTaxIdentification(params)\n}',
      },
      go: {
        method: 'client.Parties.Individuals.TaxIdentifications.UpdateTaxIdentification',
        example:
          'package main\n\nimport (\n\t"context"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\terr := client.Parties.Individuals.TaxIdentifications.UpdateTaxIdentification(\n\t\tcontext.TODO(),\n\t\t"6878951b-256b-4baa-9e81-ad4c577adc4e",\n\t\t"123456789",\n\t\tplumery.PartyIndividualTaxIdentificationUpdateTaxIdentificationParams{\n\t\t\tID: plumery.F("1178951b-256b-4baa-9e81-ad4c577adc4e"),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
      },
      cli: {
        method: 'tax-identifications updateTaxIdentification',
        example:
          "plumery parties:individuals:tax-identifications update-tax-identification \\\n  --session 'My Session' \\\n  --individual-party-id 6878951b-256b-4baa-9e81-ad4c577adc4e \\\n  --tax-identification-id 123456789 \\\n  --id 1178951b-256b-4baa-9e81-ad4c577adc4e",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/parties/individuals/$INDIVIDUAL_PARTY_ID/tax-identifications/$TAX_IDENTIFICATION_ID:updateTaxIdentification \\\n    -H \'Content-Type: application/json\' \\\n    -H "Cookie: $SESSION" \\\n    -d \'{\n          "id": "1178951b-256b-4baa-9e81-ad4c577adc4e",\n          "country": "US",\n          "primary": true,\n          "reasonDescription": "Pending application",\n          "reasonNoTin": "NOT_ASSIGNED_YET",\n          "tin": "123456789"\n        }\'',
      },
    },
  },
  {
    name: 'removeTaxIdentification',
    endpoint:
      '/api/v1/parties/individuals/{individualPartyId}/tax-identifications/{taxIdentificationId}:removeTaxIdentification',
    httpMethod: 'post',
    summary: 'Remove Tax Identification of an Individual',
    description:
      "**[Marked as internal as it was not implemented yet]** Removes an individual party's tax identification based on its ID.",
    stainlessPath: '(resource) parties.individuals.tax-identifications > (method) removeTaxIdentification',
    qualified: 'client.parties.individuals.taxIdentifications.removeTaxIdentification',
    params: ['individualPartyId: string;', 'taxIdentificationId: string;', 'plmr-user-action?: boolean;'],
    markdown:
      "## removeTaxIdentification\n\n`client.parties.individuals.taxIdentifications.removeTaxIdentification(individualPartyId: string, taxIdentificationId: string, plmr-user-action?: boolean): void`\n\n**post** `/api/v1/parties/individuals/{individualPartyId}/tax-identifications/{taxIdentificationId}:removeTaxIdentification`\n\n**[Marked as internal as it was not implemented yet]** Removes an individual party's tax identification based on its ID.\n\n### Parameters\n\n- `individualPartyId: string`\n\n- `taxIdentificationId: string`\n\n- `plmr-user-action?: boolean`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nawait client.parties.individuals.taxIdentifications.removeTaxIdentification('123456789', { individualPartyId: '6878951b-256b-4baa-9e81-ad4c577adc4e' })\n```",
    perLanguage: {
      typescript: {
        method: 'client.parties.individuals.taxIdentifications.removeTaxIdentification',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nawait client.parties.individuals.taxIdentifications.removeTaxIdentification('123456789', {\n  individualPartyId: '6878951b-256b-4baa-9e81-ad4c577adc4e',\n});",
      },
      python: {
        method: 'parties.individuals.tax_identifications.remove_tax_identification',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nclient.parties.individuals.tax_identifications.remove_tax_identification(\n    tax_identification_id="123456789",\n    individual_party_id="6878951b-256b-4baa-9e81-ad4c577adc4e",\n)',
      },
      java: {
        method: 'parties().individuals().taxIdentifications().removeTaxIdentification',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.parties.individuals.taxidentifications.TaxIdentificationRemoveTaxIdentificationParams;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        TaxIdentificationRemoveTaxIdentificationParams params = TaxIdentificationRemoveTaxIdentificationParams.builder()\n            .individualPartyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n            .taxIdentificationId("123456789")\n            .build();\n        client.parties().individuals().taxIdentifications().removeTaxIdentification(params);\n    }\n}',
      },
      kotlin: {
        method: 'parties().individuals().taxIdentifications().removeTaxIdentification',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.parties.individuals.taxidentifications.TaxIdentificationRemoveTaxIdentificationParams\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: TaxIdentificationRemoveTaxIdentificationParams = TaxIdentificationRemoveTaxIdentificationParams.builder()\n        .individualPartyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n        .taxIdentificationId("123456789")\n        .build()\n    client.parties().individuals().taxIdentifications().removeTaxIdentification(params)\n}',
      },
      go: {
        method: 'client.Parties.Individuals.TaxIdentifications.RemoveTaxIdentification',
        example:
          'package main\n\nimport (\n\t"context"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\terr := client.Parties.Individuals.TaxIdentifications.RemoveTaxIdentification(\n\t\tcontext.TODO(),\n\t\t"6878951b-256b-4baa-9e81-ad4c577adc4e",\n\t\t"123456789",\n\t\tplumery.PartyIndividualTaxIdentificationRemoveTaxIdentificationParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
      },
      cli: {
        method: 'tax-identifications removeTaxIdentification',
        example:
          "plumery parties:individuals:tax-identifications remove-tax-identification \\\n  --session 'My Session' \\\n  --individual-party-id 6878951b-256b-4baa-9e81-ad4c577adc4e \\\n  --tax-identification-id 123456789",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/parties/individuals/$INDIVIDUAL_PARTY_ID/tax-identifications/$TAX_IDENTIFICATION_ID:removeTaxIdentification \\\n    -X POST \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'retrieve',
    endpoint: '/api/v1/parties/organisations/{organisationPartyId}',
    httpMethod: 'get',
    summary: 'Retrieve an Organisation Party',
    description: 'Allows retrieval of an organisation party, fetched by its ID.',
    stainlessPath: '(resource) parties.organisations > (method) retrieve',
    qualified: 'client.parties.organisations.retrieve',
    params: ['organisationPartyId: string;', 'plmr-user-action?: boolean;'],
    response:
      '{ countryOfRegistration?: string; dateOfIncorporation?: string; legalName?: string; legalType?: string; operatingAddress?: { country: string; buildingName?: string; buildingNumber?: string; countrySubDivision?: string; districtName?: string; floor?: string; postBox?: string; postCode?: string; streetName?: string; suite?: string; townLocationName?: string; townName?: string; }; postalAddress?: { country: string; buildingName?: string; buildingNumber?: string; countrySubDivision?: string; districtName?: string; floor?: string; postBox?: string; postCode?: string; streetName?: string; suite?: string; townLocationName?: string; townName?: string; }; registrationAddress?: { country: string; buildingName?: string; buildingNumber?: string; countrySubDivision?: string; districtName?: string; floor?: string; postBox?: string; postCode?: string; streetName?: string; suite?: string; townLocationName?: string; townName?: string; }; registrationNumber?: string; tradingName?: string; typeOfOrganisation?: { categories?: string[]; description?: string; website?: string; }; vatNumber?: string; }',
    markdown:
      "## retrieve\n\n`client.parties.organisations.retrieve(organisationPartyId: string, plmr-user-action?: boolean): { countryOfRegistration?: string; dateOfIncorporation?: string; legalName?: string; legalType?: string; operatingAddress?: object; postalAddress?: object; registrationAddress?: object; registrationNumber?: string; tradingName?: string; typeOfOrganisation?: object; vatNumber?: string; }`\n\n**get** `/api/v1/parties/organisations/{organisationPartyId}`\n\nAllows retrieval of an organisation party, fetched by its ID.\n\n### Parameters\n\n- `organisationPartyId: string`\n\n- `plmr-user-action?: boolean`\n\n### Returns\n\n- `{ countryOfRegistration?: string; dateOfIncorporation?: string; legalName?: string; legalType?: string; operatingAddress?: { country: string; buildingName?: string; buildingNumber?: string; countrySubDivision?: string; districtName?: string; floor?: string; postBox?: string; postCode?: string; streetName?: string; suite?: string; townLocationName?: string; townName?: string; }; postalAddress?: { country: string; buildingName?: string; buildingNumber?: string; countrySubDivision?: string; districtName?: string; floor?: string; postBox?: string; postCode?: string; streetName?: string; suite?: string; townLocationName?: string; townName?: string; }; registrationAddress?: { country: string; buildingName?: string; buildingNumber?: string; countrySubDivision?: string; districtName?: string; floor?: string; postBox?: string; postCode?: string; streetName?: string; suite?: string; townLocationName?: string; townName?: string; }; registrationNumber?: string; tradingName?: string; typeOfOrganisation?: { categories?: string[]; description?: string; website?: string; }; vatNumber?: string; }`\n\n  - `countryOfRegistration?: string`\n  - `dateOfIncorporation?: string`\n  - `legalName?: string`\n  - `legalType?: string`\n  - `operatingAddress?: { country: string; buildingName?: string; buildingNumber?: string; countrySubDivision?: string; districtName?: string; floor?: string; postBox?: string; postCode?: string; streetName?: string; suite?: string; townLocationName?: string; townName?: string; }`\n  - `postalAddress?: { country: string; buildingName?: string; buildingNumber?: string; countrySubDivision?: string; districtName?: string; floor?: string; postBox?: string; postCode?: string; streetName?: string; suite?: string; townLocationName?: string; townName?: string; }`\n  - `registrationAddress?: { country: string; buildingName?: string; buildingNumber?: string; countrySubDivision?: string; districtName?: string; floor?: string; postBox?: string; postCode?: string; streetName?: string; suite?: string; townLocationName?: string; townName?: string; }`\n  - `registrationNumber?: string`\n  - `tradingName?: string`\n  - `typeOfOrganisation?: { categories?: string[]; description?: string; website?: string; }`\n  - `vatNumber?: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst organisation = await client.parties.organisations.retrieve('organisationPartyId');\n\nconsole.log(organisation);\n```",
    perLanguage: {
      typescript: {
        method: 'client.parties.organisations.retrieve',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nconst organisation = await client.parties.organisations.retrieve('organisationPartyId');\n\nconsole.log(organisation.countryOfRegistration);",
      },
      python: {
        method: 'parties.organisations.retrieve',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\norganisation = client.parties.organisations.retrieve(\n    organisation_party_id="organisationPartyId",\n)\nprint(organisation.country_of_registration)',
      },
      java: {
        method: 'parties().organisations().retrieve',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.parties.organisations.OrganisationRetrieveParams;\nimport com.plumery.api.models.parties.organisations.OrganisationRetrieveResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        OrganisationRetrieveResponse organisation = client.parties().organisations().retrieve("organisationPartyId");\n    }\n}',
      },
      kotlin: {
        method: 'parties().organisations().retrieve',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.parties.organisations.OrganisationRetrieveParams\nimport com.plumery.api.models.parties.organisations.OrganisationRetrieveResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val organisation: OrganisationRetrieveResponse = client.parties().organisations().retrieve("organisationPartyId")\n}',
      },
      go: {
        method: 'client.Parties.Organisations.Get',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\torganisation, err := client.Parties.Organisations.Get(\n\t\tcontext.TODO(),\n\t\t"organisationPartyId",\n\t\tplumery.PartyOrganisationGetParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", organisation.CountryOfRegistration)\n}\n',
      },
      cli: {
        method: 'organisations retrieve',
        example:
          "plumery parties:organisations retrieve \\\n  --session 'My Session' \\\n  --organisation-party-id organisationPartyId",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/parties/organisations/$ORGANISATION_PARTY_ID \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'updateOrganisationDetails',
    endpoint: '/api/v1/parties/organisations/{organisationPartyId}:update-organisation-details',
    httpMethod: 'post',
    summary: 'Update Organisation Details',
    description: "Modifies an organisation party's details based on their ID.",
    stainlessPath: '(resource) parties.organisations > (method) updateOrganisationDetails',
    qualified: 'client.parties.organisations.updateOrganisationDetails',
    params: [
      'organisationPartyId: string;',
      'legalName: string;',
      'country?: string;',
      'dateOfIncorporation?: string;',
      'legalType?: string;',
      'registrationNumber?: string;',
      'tradingName?: string;',
      'vatNumber?: string;',
      'plmr-user-action?: boolean;',
    ],
    markdown:
      "## updateOrganisationDetails\n\n`client.parties.organisations.updateOrganisationDetails(organisationPartyId: string, legalName: string, country?: string, dateOfIncorporation?: string, legalType?: string, registrationNumber?: string, tradingName?: string, vatNumber?: string, plmr-user-action?: boolean): void`\n\n**post** `/api/v1/parties/organisations/{organisationPartyId}:update-organisation-details`\n\nModifies an organisation party's details based on their ID.\n\n### Parameters\n\n- `organisationPartyId: string`\n\n- `legalName: string`\n  The legally registered name of the organisation.\n\n- `country?: string`\n  The two-letter ISO country code representing the country of the organisation.\n\n- `dateOfIncorporation?: string`\n  The date when the organisation was incorporated. Must be a past date.\n\n- `legalType?: string`\n  The legal form or type of the organisation.\n\n- `registrationNumber?: string`\n  The registration number of the organisation.\n\n- `tradingName?: string`\n  The trading name of the organisation.\n\n- `vatNumber?: string`\n  The VAT number of the organisation.\n\n- `plmr-user-action?: boolean`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nawait client.parties.organisations.updateOrganisationDetails('organisationPartyId', { legalName: 'legalName' })\n```",
    perLanguage: {
      typescript: {
        method: 'client.parties.organisations.updateOrganisationDetails',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nawait client.parties.organisations.updateOrganisationDetails('organisationPartyId', {\n  legalName: 'legalName',\n});",
      },
      python: {
        method: 'parties.organisations.update_organisation_details',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nclient.parties.organisations.update_organisation_details(\n    organisation_party_id="organisationPartyId",\n    legal_name="legalName",\n)',
      },
      java: {
        method: 'parties().organisations().updateOrganisationDetails',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.parties.organisations.OrganisationUpdateOrganisationDetailsParams;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        OrganisationUpdateOrganisationDetailsParams params = OrganisationUpdateOrganisationDetailsParams.builder()\n            .organisationPartyId("organisationPartyId")\n            .legalName("legalName")\n            .build();\n        client.parties().organisations().updateOrganisationDetails(params);\n    }\n}',
      },
      kotlin: {
        method: 'parties().organisations().updateOrganisationDetails',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.parties.organisations.OrganisationUpdateOrganisationDetailsParams\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: OrganisationUpdateOrganisationDetailsParams = OrganisationUpdateOrganisationDetailsParams.builder()\n        .organisationPartyId("organisationPartyId")\n        .legalName("legalName")\n        .build()\n    client.parties().organisations().updateOrganisationDetails(params)\n}',
      },
      go: {
        method: 'client.Parties.Organisations.UpdateOrganisationDetails',
        example:
          'package main\n\nimport (\n\t"context"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\terr := client.Parties.Organisations.UpdateOrganisationDetails(\n\t\tcontext.TODO(),\n\t\t"organisationPartyId",\n\t\tplumery.PartyOrganisationUpdateOrganisationDetailsParams{\n\t\t\tLegalName: plumery.F("legalName"),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
      },
      cli: {
        method: 'organisations updateOrganisationDetails',
        example:
          "plumery parties:organisations update-organisation-details \\\n  --session 'My Session' \\\n  --organisation-party-id organisationPartyId \\\n  --legal-name legalName",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/parties/organisations/$ORGANISATION_PARTY_ID:update-organisation-details \\\n    -H \'Content-Type: application/json\' \\\n    -H "Cookie: $SESSION" \\\n    -d \'{\n          "legalName": "legalName"\n        }\'',
      },
    },
  },
  {
    name: 'updateRegistrationAddress',
    endpoint: '/api/v1/parties/organisations/{organisationPartyId}:update-registration-address',
    httpMethod: 'post',
    summary: 'Update Registration Address of an Organisation',
    description: "Modifies an organisation party's registration address based on their ID.",
    stainlessPath: '(resource) parties.organisations > (method) updateRegistrationAddress',
    qualified: 'client.parties.organisations.updateRegistrationAddress',
    params: [
      'organisationPartyId: string;',
      'buildingName?: string;',
      'buildingNumber?: string;',
      'country?: string;',
      'countrySubDivision?: string;',
      'districtName?: string;',
      'floor?: string;',
      'postBox?: string;',
      'postCode?: string;',
      'streetName?: string;',
      'suite?: string;',
      'townLocationName?: string;',
      'townName?: string;',
      'plmr-user-action?: boolean;',
    ],
    markdown:
      "## updateRegistrationAddress\n\n`client.parties.organisations.updateRegistrationAddress(organisationPartyId: string, buildingName?: string, buildingNumber?: string, country?: string, countrySubDivision?: string, districtName?: string, floor?: string, postBox?: string, postCode?: string, streetName?: string, suite?: string, townLocationName?: string, townName?: string, plmr-user-action?: boolean): void`\n\n**post** `/api/v1/parties/organisations/{organisationPartyId}:update-registration-address`\n\nModifies an organisation party's registration address based on their ID.\n\n### Parameters\n\n- `organisationPartyId: string`\n\n- `buildingName?: string`\n  Name of the building or house\n\n\n- `buildingNumber?: string`\n  Number that identifies the position of a building on a street\n\n\n- `country?: string`\n  Nation with its own government. ISO 3166, Alpha-2 code\n\n\n- `countrySubDivision?: string`\n  Identifies a subdivision of a country such as state, region, county\n\n\n- `districtName?: string`\n  Identifies a subdivision within a country sub-division\n\n\n- `floor?: string`\n  Floor or storey within a building\n\n\n- `postBox?: string`\n  Numbered box in a post office, assigned to a person or organisation, where letters are kept until called for\n\n\n- `postCode?: string`\n  Identifier consisting of a group of letters and/or numbers that is added to a postal address to assist the sorting of mail\n\n\n- `streetName?: string`\n  Name of a street or thoroughfare\n\n\n- `suite?: string`\n  Building room number\n\n\n- `townLocationName?: string`\n  Specific location name within the town\n\n\n- `townName?: string`\n  Name of a built-up area, with defined boundaries, and a local government\n\n\n- `plmr-user-action?: boolean`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nawait client.parties.organisations.updateRegistrationAddress('6878951b-256b-4baa-9e81-ad4c577adc4e')\n```",
    perLanguage: {
      typescript: {
        method: 'client.parties.organisations.updateRegistrationAddress',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nawait client.parties.organisations.updateRegistrationAddress(\n  '6878951b-256b-4baa-9e81-ad4c577adc4e',\n);",
      },
      python: {
        method: 'parties.organisations.update_registration_address',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nclient.parties.organisations.update_registration_address(\n    organisation_party_id="6878951b-256b-4baa-9e81-ad4c577adc4e",\n)',
      },
      java: {
        method: 'parties().organisations().updateRegistrationAddress',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.parties.organisations.OrganisationUpdateRegistrationAddressParams;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        client.parties().organisations().updateRegistrationAddress("6878951b-256b-4baa-9e81-ad4c577adc4e");\n    }\n}',
      },
      kotlin: {
        method: 'parties().organisations().updateRegistrationAddress',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.parties.organisations.OrganisationUpdateRegistrationAddressParams\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    client.parties().organisations().updateRegistrationAddress("6878951b-256b-4baa-9e81-ad4c577adc4e")\n}',
      },
      go: {
        method: 'client.Parties.Organisations.UpdateRegistrationAddress',
        example:
          'package main\n\nimport (\n\t"context"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\terr := client.Parties.Organisations.UpdateRegistrationAddress(\n\t\tcontext.TODO(),\n\t\t"6878951b-256b-4baa-9e81-ad4c577adc4e",\n\t\tplumery.PartyOrganisationUpdateRegistrationAddressParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
      },
      cli: {
        method: 'organisations updateRegistrationAddress',
        example:
          "plumery parties:organisations update-registration-address \\\n  --session 'My Session' \\\n  --organisation-party-id 6878951b-256b-4baa-9e81-ad4c577adc4e",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/parties/organisations/$ORGANISATION_PARTY_ID:update-registration-address \\\n    -X POST \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'updatePostalAddress',
    endpoint: '/api/v1/parties/organisations/{organisationPartyId}:update-postal-address',
    httpMethod: 'post',
    summary: 'Update Postal Address of an Organisation',
    description: "Modifies an organisation party's postal address based on their ID.",
    stainlessPath: '(resource) parties.organisations > (method) updatePostalAddress',
    qualified: 'client.parties.organisations.updatePostalAddress',
    params: [
      'organisationPartyId: string;',
      'buildingName?: string;',
      'buildingNumber?: string;',
      'country?: string;',
      'countrySubDivision?: string;',
      'districtName?: string;',
      'floor?: string;',
      'postBox?: string;',
      'postCode?: string;',
      'streetName?: string;',
      'suite?: string;',
      'townLocationName?: string;',
      'townName?: string;',
      'plmr-user-action?: boolean;',
    ],
    markdown:
      "## updatePostalAddress\n\n`client.parties.organisations.updatePostalAddress(organisationPartyId: string, buildingName?: string, buildingNumber?: string, country?: string, countrySubDivision?: string, districtName?: string, floor?: string, postBox?: string, postCode?: string, streetName?: string, suite?: string, townLocationName?: string, townName?: string, plmr-user-action?: boolean): void`\n\n**post** `/api/v1/parties/organisations/{organisationPartyId}:update-postal-address`\n\nModifies an organisation party's postal address based on their ID.\n\n### Parameters\n\n- `organisationPartyId: string`\n\n- `buildingName?: string`\n  Name of the building or house\n\n\n- `buildingNumber?: string`\n  Number that identifies the position of a building on a street\n\n\n- `country?: string`\n  Nation with its own government. ISO 3166, Alpha-2 code\n\n\n- `countrySubDivision?: string`\n  Identifies a subdivision of a country such as state, region, county\n\n\n- `districtName?: string`\n  Identifies a subdivision within a country sub-division\n\n\n- `floor?: string`\n  Floor or storey within a building\n\n\n- `postBox?: string`\n  Numbered box in a post office, assigned to a person or organisation, where letters are kept until called for\n\n\n- `postCode?: string`\n  Identifier consisting of a group of letters and/or numbers that is added to a postal address to assist the sorting of mail\n\n\n- `streetName?: string`\n  Name of a street or thoroughfare\n\n\n- `suite?: string`\n  Building room number\n\n\n- `townLocationName?: string`\n  Specific location name within the town\n\n\n- `townName?: string`\n  Name of a built-up area, with defined boundaries, and a local government\n\n\n- `plmr-user-action?: boolean`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nawait client.parties.organisations.updatePostalAddress('6878951b-256b-4baa-9e81-ad4c577adc4e')\n```",
    perLanguage: {
      typescript: {
        method: 'client.parties.organisations.updatePostalAddress',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nawait client.parties.organisations.updatePostalAddress('6878951b-256b-4baa-9e81-ad4c577adc4e');",
      },
      python: {
        method: 'parties.organisations.update_postal_address',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nclient.parties.organisations.update_postal_address(\n    organisation_party_id="6878951b-256b-4baa-9e81-ad4c577adc4e",\n)',
      },
      java: {
        method: 'parties().organisations().updatePostalAddress',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.parties.organisations.OrganisationUpdatePostalAddressParams;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        client.parties().organisations().updatePostalAddress("6878951b-256b-4baa-9e81-ad4c577adc4e");\n    }\n}',
      },
      kotlin: {
        method: 'parties().organisations().updatePostalAddress',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.parties.organisations.OrganisationUpdatePostalAddressParams\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    client.parties().organisations().updatePostalAddress("6878951b-256b-4baa-9e81-ad4c577adc4e")\n}',
      },
      go: {
        method: 'client.Parties.Organisations.UpdatePostalAddress',
        example:
          'package main\n\nimport (\n\t"context"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\terr := client.Parties.Organisations.UpdatePostalAddress(\n\t\tcontext.TODO(),\n\t\t"6878951b-256b-4baa-9e81-ad4c577adc4e",\n\t\tplumery.PartyOrganisationUpdatePostalAddressParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
      },
      cli: {
        method: 'organisations updatePostalAddress',
        example:
          "plumery parties:organisations update-postal-address \\\n  --session 'My Session' \\\n  --organisation-party-id 6878951b-256b-4baa-9e81-ad4c577adc4e",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/parties/organisations/$ORGANISATION_PARTY_ID:update-postal-address \\\n    -X POST \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'updateOperatingAddress',
    endpoint: '/api/v1/parties/organisations/{organisationPartyId}:update-operating-address',
    httpMethod: 'post',
    summary: 'Update Operating Address of an Organisation',
    description: "Modifies an organisation party's operating address based on their ID.",
    stainlessPath: '(resource) parties.organisations > (method) updateOperatingAddress',
    qualified: 'client.parties.organisations.updateOperatingAddress',
    params: [
      'organisationPartyId: string;',
      'buildingName?: string;',
      'buildingNumber?: string;',
      'country?: string;',
      'countrySubDivision?: string;',
      'districtName?: string;',
      'floor?: string;',
      'postBox?: string;',
      'postCode?: string;',
      'streetName?: string;',
      'suite?: string;',
      'townLocationName?: string;',
      'townName?: string;',
      'plmr-user-action?: boolean;',
    ],
    markdown:
      "## updateOperatingAddress\n\n`client.parties.organisations.updateOperatingAddress(organisationPartyId: string, buildingName?: string, buildingNumber?: string, country?: string, countrySubDivision?: string, districtName?: string, floor?: string, postBox?: string, postCode?: string, streetName?: string, suite?: string, townLocationName?: string, townName?: string, plmr-user-action?: boolean): void`\n\n**post** `/api/v1/parties/organisations/{organisationPartyId}:update-operating-address`\n\nModifies an organisation party's operating address based on their ID.\n\n### Parameters\n\n- `organisationPartyId: string`\n\n- `buildingName?: string`\n  Name of the building or house\n\n\n- `buildingNumber?: string`\n  Number that identifies the position of a building on a street\n\n\n- `country?: string`\n  Nation with its own government. ISO 3166, Alpha-2 code\n\n\n- `countrySubDivision?: string`\n  Identifies a subdivision of a country such as state, region, county\n\n\n- `districtName?: string`\n  Identifies a subdivision within a country sub-division\n\n\n- `floor?: string`\n  Floor or storey within a building\n\n\n- `postBox?: string`\n  Numbered box in a post office, assigned to a person or organisation, where letters are kept until called for\n\n\n- `postCode?: string`\n  Identifier consisting of a group of letters and/or numbers that is added to a postal address to assist the sorting of mail\n\n\n- `streetName?: string`\n  Name of a street or thoroughfare\n\n\n- `suite?: string`\n  Building room number\n\n\n- `townLocationName?: string`\n  Specific location name within the town\n\n\n- `townName?: string`\n  Name of a built-up area, with defined boundaries, and a local government\n\n\n- `plmr-user-action?: boolean`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nawait client.parties.organisations.updateOperatingAddress('6878951b-256b-4baa-9e81-ad4c577adc4e')\n```",
    perLanguage: {
      typescript: {
        method: 'client.parties.organisations.updateOperatingAddress',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nawait client.parties.organisations.updateOperatingAddress('6878951b-256b-4baa-9e81-ad4c577adc4e');",
      },
      python: {
        method: 'parties.organisations.update_operating_address',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nclient.parties.organisations.update_operating_address(\n    organisation_party_id="6878951b-256b-4baa-9e81-ad4c577adc4e",\n)',
      },
      java: {
        method: 'parties().organisations().updateOperatingAddress',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.parties.organisations.OrganisationUpdateOperatingAddressParams;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        client.parties().organisations().updateOperatingAddress("6878951b-256b-4baa-9e81-ad4c577adc4e");\n    }\n}',
      },
      kotlin: {
        method: 'parties().organisations().updateOperatingAddress',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.parties.organisations.OrganisationUpdateOperatingAddressParams\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    client.parties().organisations().updateOperatingAddress("6878951b-256b-4baa-9e81-ad4c577adc4e")\n}',
      },
      go: {
        method: 'client.Parties.Organisations.UpdateOperatingAddress',
        example:
          'package main\n\nimport (\n\t"context"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\terr := client.Parties.Organisations.UpdateOperatingAddress(\n\t\tcontext.TODO(),\n\t\t"6878951b-256b-4baa-9e81-ad4c577adc4e",\n\t\tplumery.PartyOrganisationUpdateOperatingAddressParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
      },
      cli: {
        method: 'organisations updateOperatingAddress',
        example:
          "plumery parties:organisations update-operating-address \\\n  --session 'My Session' \\\n  --organisation-party-id 6878951b-256b-4baa-9e81-ad4c577adc4e",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/parties/organisations/$ORGANISATION_PARTY_ID:update-operating-address \\\n    -X POST \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'updateOrganisationType',
    endpoint: '/api/v1/parties/organisations/{organisationPartyId}:update-organisation-type',
    httpMethod: 'post',
    summary: 'Update Organisation type',
    description: "Modifies an organisation party's type based on their ID.",
    stainlessPath: '(resource) parties.organisations > (method) updateOrganisationType',
    qualified: 'client.parties.organisations.updateOrganisationType',
    params: [
      'organisationPartyId: string;',
      'categories?: string[];',
      'description?: string;',
      'website?: string;',
      'plmr-user-action?: boolean;',
    ],
    markdown:
      "## updateOrganisationType\n\n`client.parties.organisations.updateOrganisationType(organisationPartyId: string, categories?: string[], description?: string, website?: string, plmr-user-action?: boolean): void`\n\n**post** `/api/v1/parties/organisations/{organisationPartyId}:update-organisation-type`\n\nModifies an organisation party's type based on their ID.\n\n### Parameters\n\n- `organisationPartyId: string`\n\n- `categories?: string[]`\n\n- `description?: string`\n  Description of the organisation\n\n- `website?: string`\n  Website of the organisation\n\n- `plmr-user-action?: boolean`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nawait client.parties.organisations.updateOrganisationType('organisationPartyId')\n```",
    perLanguage: {
      typescript: {
        method: 'client.parties.organisations.updateOrganisationType',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nawait client.parties.organisations.updateOrganisationType('organisationPartyId');",
      },
      python: {
        method: 'parties.organisations.update_organisation_type',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nclient.parties.organisations.update_organisation_type(\n    organisation_party_id="organisationPartyId",\n)',
      },
      java: {
        method: 'parties().organisations().updateOrganisationType',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.parties.organisations.OrganisationUpdateOrganisationTypeParams;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        client.parties().organisations().updateOrganisationType("organisationPartyId");\n    }\n}',
      },
      kotlin: {
        method: 'parties().organisations().updateOrganisationType',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.parties.organisations.OrganisationUpdateOrganisationTypeParams\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    client.parties().organisations().updateOrganisationType("organisationPartyId")\n}',
      },
      go: {
        method: 'client.Parties.Organisations.UpdateOrganisationType',
        example:
          'package main\n\nimport (\n\t"context"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\terr := client.Parties.Organisations.UpdateOrganisationType(\n\t\tcontext.TODO(),\n\t\t"organisationPartyId",\n\t\tplumery.PartyOrganisationUpdateOrganisationTypeParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
      },
      cli: {
        method: 'organisations updateOrganisationType',
        example:
          "plumery parties:organisations update-organisation-type \\\n  --session 'My Session' \\\n  --organisation-party-id organisationPartyId",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/parties/organisations/$ORGANISATION_PARTY_ID:update-organisation-type \\\n    -X POST \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'list',
    endpoint: '/api/v1/parties/{organisationPartyId}/teams',
    httpMethod: 'get',
    summary: 'Retrieve teams',
    description: 'Retrieve a list of teams associated with the specified organisation party.\n',
    stainlessPath: '(resource) parties.teams > (method) list',
    qualified: 'client.parties.teams.list',
    params: ['organisationPartyId: string;', 'plmr-user-action?: boolean;', 'X-Request-ID?: string;'],
    response: '{ teams?: { name?: string; teamId?: string; }[]; }',
    markdown:
      "## list\n\n`client.parties.teams.list(organisationPartyId: string, plmr-user-action?: boolean, X-Request-ID?: string): { teams?: object[]; }`\n\n**get** `/api/v1/parties/{organisationPartyId}/teams`\n\nRetrieve a list of teams associated with the specified organisation party.\n\n\n### Parameters\n\n- `organisationPartyId: string`\n\n- `plmr-user-action?: boolean`\n\n- `X-Request-ID?: string`\n\n### Returns\n\n- `{ teams?: { name?: string; teamId?: string; }[]; }`\n  Team response details\n\n  - `teams?: { name?: string; teamId?: string; }[]`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst teams = await client.parties.teams.list('6878951b-256b-4baa-9e81-ad4c577adc4e');\n\nconsole.log(teams);\n```",
    perLanguage: {
      typescript: {
        method: 'client.parties.teams.list',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nconst teams = await client.parties.teams.list('6878951b-256b-4baa-9e81-ad4c577adc4e');\n\nconsole.log(teams.teams);",
      },
      python: {
        method: 'parties.teams.list',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nteams = client.parties.teams.list(\n    organisation_party_id="6878951b-256b-4baa-9e81-ad4c577adc4e",\n)\nprint(teams.teams)',
      },
      java: {
        method: 'parties().teams().list',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.parties.teams.TeamListParams;\nimport com.plumery.api.models.parties.teams.TeamListResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        TeamListResponse teams = client.parties().teams().list("6878951b-256b-4baa-9e81-ad4c577adc4e");\n    }\n}',
      },
      kotlin: {
        method: 'parties().teams().list',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.parties.teams.TeamListParams\nimport com.plumery.api.models.parties.teams.TeamListResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val teams: TeamListResponse = client.parties().teams().list("6878951b-256b-4baa-9e81-ad4c577adc4e")\n}',
      },
      go: {
        method: 'client.Parties.Teams.List',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tteams, err := client.Parties.Teams.List(\n\t\tcontext.TODO(),\n\t\t"6878951b-256b-4baa-9e81-ad4c577adc4e",\n\t\tplumery.PartyTeamListParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", teams.Teams)\n}\n',
      },
      cli: {
        method: 'teams list',
        example:
          "plumery parties:teams list \\\n  --session 'My Session' \\\n  --organisation-party-id 6878951b-256b-4baa-9e81-ad4c577adc4e",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/parties/$ORGANISATION_PARTY_ID/teams \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'retrieve',
    endpoint: '/api/v1/parties/{organisationPartyId}/teams/me',
    httpMethod: 'get',
    summary: 'Retrieve teams access',
    description:
      'Retrieve the detailed information of the active teams that the current has access to, in the context of the \nspecified organisation party.\n',
    stainlessPath: '(resource) parties.teams.me > (method) retrieve',
    qualified: 'client.parties.teams.me.retrieve',
    params: [
      'organisationPartyId: string;',
      'expandPermissions?: boolean;',
      'plmr-user-action?: boolean;',
      'X-Request-ID?: string;',
    ],
    response:
      "{ teams?: { context?: string; name?: string; permissions?: { action?: string; category?: string; resource?: string; }[]; role?: { name?: string; roleId?: string; }; status?: 'PENDING' | 'ACTIVE' | 'SUSPENDED'; teamId?: string; }[]; }",
    markdown:
      "## retrieve\n\n`client.parties.teams.me.retrieve(organisationPartyId: string, expandPermissions?: boolean, plmr-user-action?: boolean, X-Request-ID?: string): { teams?: object[]; }`\n\n**get** `/api/v1/parties/{organisationPartyId}/teams/me`\n\nRetrieve the detailed information of the active teams that the current has access to, in the context of the \nspecified organisation party.\n\n\n### Parameters\n\n- `organisationPartyId: string`\n\n- `expandPermissions?: boolean`\n  This parameter influences the information about roles provided in the response. If it is set to 'true', \nthe response will include permissions associated with each role. If 'false' or not provided, the response \nwill only include roles without their respective permissions.\n\n\n- `plmr-user-action?: boolean`\n\n- `X-Request-ID?: string`\n\n### Returns\n\n- `{ teams?: { context?: string; name?: string; permissions?: { action?: string; category?: string; resource?: string; }[]; role?: { name?: string; roleId?: string; }; status?: 'PENDING' | 'ACTIVE' | 'SUSPENDED'; teamId?: string; }[]; }`\n  Represents a detailed contextual view of a user's access across all teams they are part of within an organisation.\n\n  - `teams?: { context?: string; name?: string; permissions?: { action?: string; category?: string; resource?: string; }[]; role?: { name?: string; roleId?: string; }; status?: 'PENDING' | 'ACTIVE' | 'SUSPENDED'; teamId?: string; }[]`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst me = await client.parties.teams.me.retrieve('6878951b-256b-4baa-9e81-ad4c577adc4e');\n\nconsole.log(me);\n```",
    perLanguage: {
      typescript: {
        method: 'client.parties.teams.me.retrieve',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nconst me = await client.parties.teams.me.retrieve('6878951b-256b-4baa-9e81-ad4c577adc4e');\n\nconsole.log(me.teams);",
      },
      python: {
        method: 'parties.teams.me.retrieve',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nme = client.parties.teams.me.retrieve(\n    organisation_party_id="6878951b-256b-4baa-9e81-ad4c577adc4e",\n)\nprint(me.teams)',
      },
      java: {
        method: 'parties().teams().me().retrieve',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.parties.teams.me.MeRetrieveParams;\nimport com.plumery.api.models.parties.teams.me.MeRetrieveResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        MeRetrieveResponse me = client.parties().teams().me().retrieve("6878951b-256b-4baa-9e81-ad4c577adc4e");\n    }\n}',
      },
      kotlin: {
        method: 'parties().teams().me().retrieve',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.parties.teams.me.MeRetrieveParams\nimport com.plumery.api.models.parties.teams.me.MeRetrieveResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val me: MeRetrieveResponse = client.parties().teams().me().retrieve("6878951b-256b-4baa-9e81-ad4c577adc4e")\n}',
      },
      go: {
        method: 'client.Parties.Teams.Me.Get',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tme, err := client.Parties.Teams.Me.Get(\n\t\tcontext.TODO(),\n\t\t"6878951b-256b-4baa-9e81-ad4c577adc4e",\n\t\tplumery.PartyTeamMeGetParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", me.Teams)\n}\n',
      },
      cli: {
        method: 'me retrieve',
        example:
          "plumery parties:teams:me retrieve \\\n  --session 'My Session' \\\n  --organisation-party-id 6878951b-256b-4baa-9e81-ad4c577adc4e",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/parties/$ORGANISATION_PARTY_ID/teams/me \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'list',
    endpoint: '/api/v1/parties/{organisationPartyId}/teams/{teamId}/members',
    httpMethod: 'get',
    summary: 'Retrieve team members',
    description: 'Retrieve a list of members associated with the specified team.\n',
    stainlessPath: '(resource) parties.teams.members > (method) list',
    qualified: 'client.parties.teams.members.list',
    params: [
      'organisationPartyId: string;',
      'teamId: string;',
      "status?: 'PENDING' | 'ACTIVE' | 'SUSPENDED'[];",
      'plmr-user-action?: boolean;',
      'X-Request-ID?: string;',
    ],
    response:
      "{ members?: { memberId?: string; name?: string; role?: { name?: string; roleId?: string; }; status?: 'PENDING' | 'ACTIVE' | 'SUSPENDED'; }[]; }",
    markdown:
      "## list\n\n`client.parties.teams.members.list(organisationPartyId: string, teamId: string, status?: 'PENDING' | 'ACTIVE' | 'SUSPENDED'[], plmr-user-action?: boolean, X-Request-ID?: string): { members?: object[]; }`\n\n**get** `/api/v1/parties/{organisationPartyId}/teams/{teamId}/members`\n\nRetrieve a list of members associated with the specified team.\n\n\n### Parameters\n\n- `organisationPartyId: string`\n\n- `teamId: string`\n\n- `status?: 'PENDING' | 'ACTIVE' | 'SUSPENDED'[]`\n  Retrieve members matching a specific status (e.g., PENDING, ACTIVE, SUSPENDED). If unset, the filter will be \nignored and all team members will be retrieved.\n\n\n- `plmr-user-action?: boolean`\n\n- `X-Request-ID?: string`\n\n### Returns\n\n- `{ members?: { memberId?: string; name?: string; role?: { name?: string; roleId?: string; }; status?: 'PENDING' | 'ACTIVE' | 'SUSPENDED'; }[]; }`\n  Team members response details\n\n  - `members?: { memberId?: string; name?: string; role?: { name?: string; roleId?: string; }; status?: 'PENDING' | 'ACTIVE' | 'SUSPENDED'; }[]`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst members = await client.parties.teams.members.list('ae18e3de-afb1-4434-a7cc-e4a9e5e8fc31', { organisationPartyId: '6878951b-256b-4baa-9e81-ad4c577adc4e' });\n\nconsole.log(members);\n```",
    perLanguage: {
      typescript: {
        method: 'client.parties.teams.members.list',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nconst members = await client.parties.teams.members.list('ae18e3de-afb1-4434-a7cc-e4a9e5e8fc31', {\n  organisationPartyId: '6878951b-256b-4baa-9e81-ad4c577adc4e',\n});\n\nconsole.log(members.members);",
      },
      python: {
        method: 'parties.teams.members.list',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nmembers = client.parties.teams.members.list(\n    team_id="ae18e3de-afb1-4434-a7cc-e4a9e5e8fc31",\n    organisation_party_id="6878951b-256b-4baa-9e81-ad4c577adc4e",\n)\nprint(members.members)',
      },
      java: {
        method: 'parties().teams().members().list',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.parties.teams.members.MemberListParams;\nimport com.plumery.api.models.parties.teams.members.MemberListResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        MemberListParams params = MemberListParams.builder()\n            .organisationPartyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n            .teamId("ae18e3de-afb1-4434-a7cc-e4a9e5e8fc31")\n            .build();\n        MemberListResponse members = client.parties().teams().members().list(params);\n    }\n}',
      },
      kotlin: {
        method: 'parties().teams().members().list',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.parties.teams.members.MemberListParams\nimport com.plumery.api.models.parties.teams.members.MemberListResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: MemberListParams = MemberListParams.builder()\n        .organisationPartyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n        .teamId("ae18e3de-afb1-4434-a7cc-e4a9e5e8fc31")\n        .build()\n    val members: MemberListResponse = client.parties().teams().members().list(params)\n}',
      },
      go: {
        method: 'client.Parties.Teams.Members.List',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tmembers, err := client.Parties.Teams.Members.List(\n\t\tcontext.TODO(),\n\t\t"6878951b-256b-4baa-9e81-ad4c577adc4e",\n\t\t"ae18e3de-afb1-4434-a7cc-e4a9e5e8fc31",\n\t\tplumery.PartyTeamMemberListParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", members.Members)\n}\n',
      },
      cli: {
        method: 'members list',
        example:
          "plumery parties:teams:members list \\\n  --session 'My Session' \\\n  --organisation-party-id 6878951b-256b-4baa-9e81-ad4c577adc4e \\\n  --team-id ae18e3de-afb1-4434-a7cc-e4a9e5e8fc31",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/parties/$ORGANISATION_PARTY_ID/teams/$TEAM_ID/members \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'retrieve',
    endpoint: '/api/v1/parties/{organisationPartyId}/teams/{teamId}/members/{memberId}',
    httpMethod: 'get',
    summary: 'Retrieve team member details',
    description: 'Retrieve detailed information for a specified team member.\n',
    stainlessPath: '(resource) parties.teams.members > (method) retrieve',
    qualified: 'client.parties.teams.members.retrieve',
    params: [
      'organisationPartyId: string;',
      'teamId: string;',
      'memberId: string;',
      "details?: 'MEMBER' | 'CONTACT' | 'PERSONAL'[];",
      'plmr-user-action?: boolean;',
      'X-Request-ID?: string;',
    ],
    response:
      "{ memberId?: string; name?: string; role?: { name?: string; roleId?: string; }; status?: 'PENDING' | 'ACTIVE' | 'SUSPENDED'; } | { contactInfo?: { emailAddress?: string; phoneNumber?: string; }; } | { personalInfo?: { dateOfBirth?: string; firstName?: string; lastName?: string; middleNames?: string; postalAddress?: { buildingName?: string; buildingNumber?: string; country?: string; countrySubDivision?: string; districtName?: string; floor?: string; postBox?: string; postCode?: string; streetName?: string; suite?: string; townLocationName?: string; townName?: string; }; preferredName?: string; registrationAddress?: { buildingName?: string; buildingNumber?: string; country?: string; countrySubDivision?: string; districtName?: string; floor?: string; postBox?: string; postCode?: string; streetName?: string; suite?: string; townLocationName?: string; townName?: string; }; }; }",
    markdown:
      "## retrieve\n\n`client.parties.teams.members.retrieve(organisationPartyId: string, teamId: string, memberId: string, details?: 'MEMBER' | 'CONTACT' | 'PERSONAL'[], plmr-user-action?: boolean, X-Request-ID?: string): { memberId?: string; name?: string; role?: object; status?: 'PENDING' | 'ACTIVE' | 'SUSPENDED'; } | { contactInfo?: object; } | { personalInfo?: object; }`\n\n**get** `/api/v1/parties/{organisationPartyId}/teams/{teamId}/members/{memberId}`\n\nRetrieve detailed information for a specified team member.\n\n\n### Parameters\n\n- `organisationPartyId: string`\n\n- `teamId: string`\n\n- `memberId: string`\n  Member unique identifier.\n\n- `details?: 'MEMBER' | 'CONTACT' | 'PERSONAL'[]`\n  Retrieve member details matching a specific level of detail. Different level of details might require\nelevated permissions.\n\n\n- `plmr-user-action?: boolean`\n\n- `X-Request-ID?: string`\n\n### Returns\n\n- `{ memberId?: string; name?: string; role?: { name?: string; roleId?: string; }; status?: 'PENDING' | 'ACTIVE' | 'SUSPENDED'; } | { contactInfo?: { emailAddress?: string; phoneNumber?: string; }; } | { personalInfo?: { dateOfBirth?: string; firstName?: string; lastName?: string; middleNames?: string; postalAddress?: { buildingName?: string; buildingNumber?: string; country?: string; countrySubDivision?: string; districtName?: string; floor?: string; postBox?: string; postCode?: string; streetName?: string; suite?: string; townLocationName?: string; townName?: string; }; preferredName?: string; registrationAddress?: { buildingName?: string; buildingNumber?: string; country?: string; countrySubDivision?: string; districtName?: string; floor?: string; postBox?: string; postCode?: string; streetName?: string; suite?: string; townLocationName?: string; townName?: string; }; }; }`\n  Team member response details\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst member = await client.parties.teams.members.retrieve('4c3882fd-ac4c-41da-9bc0-4d5ce5f55727', { organisationPartyId: '6878951b-256b-4baa-9e81-ad4c577adc4e', teamId: 'ae18e3de-afb1-4434-a7cc-e4a9e5e8fc31' });\n\nconsole.log(member);\n```",
    perLanguage: {
      typescript: {
        method: 'client.parties.teams.members.retrieve',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nconst member = await client.parties.teams.members.retrieve('4c3882fd-ac4c-41da-9bc0-4d5ce5f55727', {\n  organisationPartyId: '6878951b-256b-4baa-9e81-ad4c577adc4e',\n  teamId: 'ae18e3de-afb1-4434-a7cc-e4a9e5e8fc31',\n});\n\nconsole.log(member);",
      },
      python: {
        method: 'parties.teams.members.retrieve',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nmember = client.parties.teams.members.retrieve(\n    member_id="4c3882fd-ac4c-41da-9bc0-4d5ce5f55727",\n    organisation_party_id="6878951b-256b-4baa-9e81-ad4c577adc4e",\n    team_id="ae18e3de-afb1-4434-a7cc-e4a9e5e8fc31",\n)\nprint(member)',
      },
      java: {
        method: 'parties().teams().members().retrieve',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.parties.teams.members.MemberRetrieveParams;\nimport com.plumery.api.models.parties.teams.members.MemberRetrieveResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        MemberRetrieveParams params = MemberRetrieveParams.builder()\n            .organisationPartyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n            .teamId("ae18e3de-afb1-4434-a7cc-e4a9e5e8fc31")\n            .memberId("4c3882fd-ac4c-41da-9bc0-4d5ce5f55727")\n            .build();\n        MemberRetrieveResponse member = client.parties().teams().members().retrieve(params);\n    }\n}',
      },
      kotlin: {
        method: 'parties().teams().members().retrieve',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.parties.teams.members.MemberRetrieveParams\nimport com.plumery.api.models.parties.teams.members.MemberRetrieveResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: MemberRetrieveParams = MemberRetrieveParams.builder()\n        .organisationPartyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n        .teamId("ae18e3de-afb1-4434-a7cc-e4a9e5e8fc31")\n        .memberId("4c3882fd-ac4c-41da-9bc0-4d5ce5f55727")\n        .build()\n    val member: MemberRetrieveResponse = client.parties().teams().members().retrieve(params)\n}',
      },
      go: {
        method: 'client.Parties.Teams.Members.Get',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tmember, err := client.Parties.Teams.Members.Get(\n\t\tcontext.TODO(),\n\t\t"6878951b-256b-4baa-9e81-ad4c577adc4e",\n\t\t"ae18e3de-afb1-4434-a7cc-e4a9e5e8fc31",\n\t\t"4c3882fd-ac4c-41da-9bc0-4d5ce5f55727",\n\t\tplumery.PartyTeamMemberGetParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", member)\n}\n',
      },
      cli: {
        method: 'members retrieve',
        example:
          "plumery parties:teams:members retrieve \\\n  --session 'My Session' \\\n  --organisation-party-id 6878951b-256b-4baa-9e81-ad4c577adc4e \\\n  --team-id ae18e3de-afb1-4434-a7cc-e4a9e5e8fc31 \\\n  --member-id 4c3882fd-ac4c-41da-9bc0-4d5ce5f55727",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/parties/$ORGANISATION_PARTY_ID/teams/$TEAM_ID/members/$MEMBER_ID \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'suspend',
    endpoint: '/api/v1/parties/{organisationPartyId}/teams/{teamId}/members/{memberId}:suspend',
    httpMethod: 'post',
    summary: 'Suspend team member',
    description: 'Suspend a specified team member by revoking their team access.\n',
    stainlessPath: '(resource) parties.teams.members > (method) suspend',
    qualified: 'client.parties.teams.members.suspend',
    params: [
      'organisationPartyId: string;',
      'teamId: string;',
      'memberId: string;',
      'plmr-user-action?: boolean;',
      'X-Request-ID?: string;',
    ],
    markdown:
      "## suspend\n\n`client.parties.teams.members.suspend(organisationPartyId: string, teamId: string, memberId: string, plmr-user-action?: boolean, X-Request-ID?: string): void`\n\n**post** `/api/v1/parties/{organisationPartyId}/teams/{teamId}/members/{memberId}:suspend`\n\nSuspend a specified team member by revoking their team access.\n\n\n### Parameters\n\n- `organisationPartyId: string`\n\n- `teamId: string`\n\n- `memberId: string`\n  Member unique identifier.\n\n- `plmr-user-action?: boolean`\n\n- `X-Request-ID?: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nawait client.parties.teams.members.suspend('4c3882fd-ac4c-41da-9bc0-4d5ce5f55727', { organisationPartyId: '6878951b-256b-4baa-9e81-ad4c577adc4e', teamId: 'ae18e3de-afb1-4434-a7cc-e4a9e5e8fc31' })\n```",
    perLanguage: {
      typescript: {
        method: 'client.parties.teams.members.suspend',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nawait client.parties.teams.members.suspend('4c3882fd-ac4c-41da-9bc0-4d5ce5f55727', {\n  organisationPartyId: '6878951b-256b-4baa-9e81-ad4c577adc4e',\n  teamId: 'ae18e3de-afb1-4434-a7cc-e4a9e5e8fc31',\n});",
      },
      python: {
        method: 'parties.teams.members.suspend',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nclient.parties.teams.members.suspend(\n    member_id="4c3882fd-ac4c-41da-9bc0-4d5ce5f55727",\n    organisation_party_id="6878951b-256b-4baa-9e81-ad4c577adc4e",\n    team_id="ae18e3de-afb1-4434-a7cc-e4a9e5e8fc31",\n)',
      },
      java: {
        method: 'parties().teams().members().suspend',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.parties.teams.members.MemberSuspendParams;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        MemberSuspendParams params = MemberSuspendParams.builder()\n            .organisationPartyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n            .teamId("ae18e3de-afb1-4434-a7cc-e4a9e5e8fc31")\n            .memberId("4c3882fd-ac4c-41da-9bc0-4d5ce5f55727")\n            .build();\n        client.parties().teams().members().suspend(params);\n    }\n}',
      },
      kotlin: {
        method: 'parties().teams().members().suspend',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.parties.teams.members.MemberSuspendParams\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: MemberSuspendParams = MemberSuspendParams.builder()\n        .organisationPartyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n        .teamId("ae18e3de-afb1-4434-a7cc-e4a9e5e8fc31")\n        .memberId("4c3882fd-ac4c-41da-9bc0-4d5ce5f55727")\n        .build()\n    client.parties().teams().members().suspend(params)\n}',
      },
      go: {
        method: 'client.Parties.Teams.Members.Suspend',
        example:
          'package main\n\nimport (\n\t"context"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\terr := client.Parties.Teams.Members.Suspend(\n\t\tcontext.TODO(),\n\t\t"6878951b-256b-4baa-9e81-ad4c577adc4e",\n\t\t"ae18e3de-afb1-4434-a7cc-e4a9e5e8fc31",\n\t\t"4c3882fd-ac4c-41da-9bc0-4d5ce5f55727",\n\t\tplumery.PartyTeamMemberSuspendParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
      },
      cli: {
        method: 'members suspend',
        example:
          "plumery parties:teams:members suspend \\\n  --session 'My Session' \\\n  --organisation-party-id 6878951b-256b-4baa-9e81-ad4c577adc4e \\\n  --team-id ae18e3de-afb1-4434-a7cc-e4a9e5e8fc31 \\\n  --member-id 4c3882fd-ac4c-41da-9bc0-4d5ce5f55727",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/parties/$ORGANISATION_PARTY_ID/teams/$TEAM_ID/members/$MEMBER_ID:suspend \\\n    -X POST \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'unsuspend',
    endpoint: '/api/v1/parties/{organisationPartyId}/teams/{teamId}/members/{memberId}:unsuspend',
    httpMethod: 'post',
    summary: 'Unsuspend team member',
    description: 'Unsuspend a specified team member by reinstating their team access.\n',
    stainlessPath: '(resource) parties.teams.members > (method) unsuspend',
    qualified: 'client.parties.teams.members.unsuspend',
    params: [
      'organisationPartyId: string;',
      'teamId: string;',
      'memberId: string;',
      'plmr-user-action?: boolean;',
      'X-Request-ID?: string;',
    ],
    markdown:
      "## unsuspend\n\n`client.parties.teams.members.unsuspend(organisationPartyId: string, teamId: string, memberId: string, plmr-user-action?: boolean, X-Request-ID?: string): void`\n\n**post** `/api/v1/parties/{organisationPartyId}/teams/{teamId}/members/{memberId}:unsuspend`\n\nUnsuspend a specified team member by reinstating their team access.\n\n\n### Parameters\n\n- `organisationPartyId: string`\n\n- `teamId: string`\n\n- `memberId: string`\n  Member unique identifier.\n\n- `plmr-user-action?: boolean`\n\n- `X-Request-ID?: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nawait client.parties.teams.members.unsuspend('4c3882fd-ac4c-41da-9bc0-4d5ce5f55727', { organisationPartyId: '6878951b-256b-4baa-9e81-ad4c577adc4e', teamId: 'ae18e3de-afb1-4434-a7cc-e4a9e5e8fc31' })\n```",
    perLanguage: {
      typescript: {
        method: 'client.parties.teams.members.unsuspend',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nawait client.parties.teams.members.unsuspend('4c3882fd-ac4c-41da-9bc0-4d5ce5f55727', {\n  organisationPartyId: '6878951b-256b-4baa-9e81-ad4c577adc4e',\n  teamId: 'ae18e3de-afb1-4434-a7cc-e4a9e5e8fc31',\n});",
      },
      python: {
        method: 'parties.teams.members.unsuspend',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nclient.parties.teams.members.unsuspend(\n    member_id="4c3882fd-ac4c-41da-9bc0-4d5ce5f55727",\n    organisation_party_id="6878951b-256b-4baa-9e81-ad4c577adc4e",\n    team_id="ae18e3de-afb1-4434-a7cc-e4a9e5e8fc31",\n)',
      },
      java: {
        method: 'parties().teams().members().unsuspend',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.parties.teams.members.MemberUnsuspendParams;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        MemberUnsuspendParams params = MemberUnsuspendParams.builder()\n            .organisationPartyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n            .teamId("ae18e3de-afb1-4434-a7cc-e4a9e5e8fc31")\n            .memberId("4c3882fd-ac4c-41da-9bc0-4d5ce5f55727")\n            .build();\n        client.parties().teams().members().unsuspend(params);\n    }\n}',
      },
      kotlin: {
        method: 'parties().teams().members().unsuspend',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.parties.teams.members.MemberUnsuspendParams\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: MemberUnsuspendParams = MemberUnsuspendParams.builder()\n        .organisationPartyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n        .teamId("ae18e3de-afb1-4434-a7cc-e4a9e5e8fc31")\n        .memberId("4c3882fd-ac4c-41da-9bc0-4d5ce5f55727")\n        .build()\n    client.parties().teams().members().unsuspend(params)\n}',
      },
      go: {
        method: 'client.Parties.Teams.Members.Unsuspend',
        example:
          'package main\n\nimport (\n\t"context"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\terr := client.Parties.Teams.Members.Unsuspend(\n\t\tcontext.TODO(),\n\t\t"6878951b-256b-4baa-9e81-ad4c577adc4e",\n\t\t"ae18e3de-afb1-4434-a7cc-e4a9e5e8fc31",\n\t\t"4c3882fd-ac4c-41da-9bc0-4d5ce5f55727",\n\t\tplumery.PartyTeamMemberUnsuspendParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
      },
      cli: {
        method: 'members unsuspend',
        example:
          "plumery parties:teams:members unsuspend \\\n  --session 'My Session' \\\n  --organisation-party-id 6878951b-256b-4baa-9e81-ad4c577adc4e \\\n  --team-id ae18e3de-afb1-4434-a7cc-e4a9e5e8fc31 \\\n  --member-id 4c3882fd-ac4c-41da-9bc0-4d5ce5f55727",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/parties/$ORGANISATION_PARTY_ID/teams/$TEAM_ID/members/$MEMBER_ID:unsuspend \\\n    -X POST \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'updateRole',
    endpoint: '/api/v1/parties/{organisationPartyId}/teams/{teamId}/members/{memberId}:update-role',
    httpMethod: 'post',
    summary: 'Update team member role',
    description:
      'Update the role of a specified team member within the team. A member with the OWNER role assigned cannot\nbe updated to another role. The OWNER role is only revoked from a member when updating another member\nto have the OWNER role. In such scenario the original OWNER is relegated to ADMIN.\n',
    stainlessPath: '(resource) parties.teams.members > (method) updateRole',
    qualified: 'client.parties.teams.members.updateRole',
    params: [
      'organisationPartyId: string;',
      'teamId: string;',
      'memberId: string;',
      'roleId: string;',
      'plmr-user-action?: boolean;',
      'X-Request-ID?: string;',
    ],
    markdown:
      "## updateRole\n\n`client.parties.teams.members.updateRole(organisationPartyId: string, teamId: string, memberId: string, roleId: string, plmr-user-action?: boolean, X-Request-ID?: string): void`\n\n**post** `/api/v1/parties/{organisationPartyId}/teams/{teamId}/members/{memberId}:update-role`\n\nUpdate the role of a specified team member within the team. A member with the OWNER role assigned cannot\nbe updated to another role. The OWNER role is only revoked from a member when updating another member\nto have the OWNER role. In such scenario the original OWNER is relegated to ADMIN.\n\n\n### Parameters\n\n- `organisationPartyId: string`\n\n- `teamId: string`\n\n- `memberId: string`\n  Member unique identifier.\n\n- `roleId: string`\n  The stable role ID which will remain consistent even if the role's actual name is changed.\n\n- `plmr-user-action?: boolean`\n\n- `X-Request-ID?: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nawait client.parties.teams.members.updateRole('4c3882fd-ac4c-41da-9bc0-4d5ce5f55727', {\n  organisationPartyId: '6878951b-256b-4baa-9e81-ad4c577adc4e',\n  teamId: 'ae18e3de-afb1-4434-a7cc-e4a9e5e8fc31',\n  roleId: '3e1250a2-742f-4808-a10a-b9bb8af32f53',\n})\n```",
    perLanguage: {
      typescript: {
        method: 'client.parties.teams.members.updateRole',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nawait client.parties.teams.members.updateRole('4c3882fd-ac4c-41da-9bc0-4d5ce5f55727', {\n  organisationPartyId: '6878951b-256b-4baa-9e81-ad4c577adc4e',\n  teamId: 'ae18e3de-afb1-4434-a7cc-e4a9e5e8fc31',\n  roleId: '3e1250a2-742f-4808-a10a-b9bb8af32f53',\n});",
      },
      python: {
        method: 'parties.teams.members.update_role',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nclient.parties.teams.members.update_role(\n    member_id="4c3882fd-ac4c-41da-9bc0-4d5ce5f55727",\n    organisation_party_id="6878951b-256b-4baa-9e81-ad4c577adc4e",\n    team_id="ae18e3de-afb1-4434-a7cc-e4a9e5e8fc31",\n    role_id="3e1250a2-742f-4808-a10a-b9bb8af32f53",\n)',
      },
      java: {
        method: 'parties().teams().members().updateRole',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.parties.teams.members.MemberUpdateRoleParams;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        MemberUpdateRoleParams params = MemberUpdateRoleParams.builder()\n            .organisationPartyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n            .teamId("ae18e3de-afb1-4434-a7cc-e4a9e5e8fc31")\n            .memberId("4c3882fd-ac4c-41da-9bc0-4d5ce5f55727")\n            .roleId("3e1250a2-742f-4808-a10a-b9bb8af32f53")\n            .build();\n        client.parties().teams().members().updateRole(params);\n    }\n}',
      },
      kotlin: {
        method: 'parties().teams().members().updateRole',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.parties.teams.members.MemberUpdateRoleParams\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: MemberUpdateRoleParams = MemberUpdateRoleParams.builder()\n        .organisationPartyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n        .teamId("ae18e3de-afb1-4434-a7cc-e4a9e5e8fc31")\n        .memberId("4c3882fd-ac4c-41da-9bc0-4d5ce5f55727")\n        .roleId("3e1250a2-742f-4808-a10a-b9bb8af32f53")\n        .build()\n    client.parties().teams().members().updateRole(params)\n}',
      },
      go: {
        method: 'client.Parties.Teams.Members.UpdateRole',
        example:
          'package main\n\nimport (\n\t"context"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\terr := client.Parties.Teams.Members.UpdateRole(\n\t\tcontext.TODO(),\n\t\t"6878951b-256b-4baa-9e81-ad4c577adc4e",\n\t\t"ae18e3de-afb1-4434-a7cc-e4a9e5e8fc31",\n\t\t"4c3882fd-ac4c-41da-9bc0-4d5ce5f55727",\n\t\tplumery.PartyTeamMemberUpdateRoleParams{\n\t\t\tRoleID: plumery.F("3e1250a2-742f-4808-a10a-b9bb8af32f53"),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
      },
      cli: {
        method: 'members updateRole',
        example:
          "plumery parties:teams:members update-role \\\n  --session 'My Session' \\\n  --organisation-party-id 6878951b-256b-4baa-9e81-ad4c577adc4e \\\n  --team-id ae18e3de-afb1-4434-a7cc-e4a9e5e8fc31 \\\n  --member-id 4c3882fd-ac4c-41da-9bc0-4d5ce5f55727 \\\n  --role-id 3e1250a2-742f-4808-a10a-b9bb8af32f53",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/parties/$ORGANISATION_PARTY_ID/teams/$TEAM_ID/members/$MEMBER_ID:update-role \\\n    -H \'Content-Type: application/json\' \\\n    -H "Cookie: $SESSION" \\\n    -d \'{\n          "roleId": "3e1250a2-742f-4808-a10a-b9bb8af32f53"\n        }\'',
      },
    },
  },
  {
    name: 'list',
    endpoint: '/api/v1/parties/{partyId}/teams/{teamId}/members/{memberId}/payment-limits',
    httpMethod: 'get',
    summary: 'Get Member Limit Profile',
    description: 'Retrieve the payment limit profile for a team member within an organisation party\n',
    stainlessPath: '(resource) parties.teams.members.payment-limits > (method) list',
    qualified: 'client.parties.teams.members.paymentLimits.list',
    params: ['partyId: string;', 'teamId: string;', 'memberId: string;', 'plmr-user-action?: boolean;'],
    response: '{ id: string; limits: { type: string; paymentTypes?: string[]; }[]; }',
    markdown:
      "## list\n\n`client.parties.teams.members.paymentLimits.list(partyId: string, teamId: string, memberId: string, plmr-user-action?: boolean): { id: string; limits: object[]; }`\n\n**get** `/api/v1/parties/{partyId}/teams/{teamId}/members/{memberId}/payment-limits`\n\nRetrieve the payment limit profile for a team member within an organisation party\n\n\n### Parameters\n\n- `partyId: string`\n\n- `teamId: string`\n\n- `memberId: string`\n\n- `plmr-user-action?: boolean`\n\n### Returns\n\n- `{ id: string; limits: { type: string; paymentTypes?: string[]; }[]; }`\n\n  - `id: string`\n  - `limits: { type: string; paymentTypes?: string[]; }[]`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst paymentLimits = await client.parties.teams.members.paymentLimits.list('8c3a2f0e-7b1d-4f6a-9c2e-1e6a2f0b8d3c', { partyId: '6878951b-256b-4baa-9e81-ad4c577adc4e', teamId: 'c7068fec-0c6d-40bf-93fa-ad8ca8aeed4a' });\n\nconsole.log(paymentLimits);\n```",
    perLanguage: {
      typescript: {
        method: 'client.parties.teams.members.paymentLimits.list',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nconst paymentLimits = await client.parties.teams.members.paymentLimits.list(\n  '8c3a2f0e-7b1d-4f6a-9c2e-1e6a2f0b8d3c',\n  {\n    partyId: '6878951b-256b-4baa-9e81-ad4c577adc4e',\n    teamId: 'c7068fec-0c6d-40bf-93fa-ad8ca8aeed4a',\n  },\n);\n\nconsole.log(paymentLimits.id);",
      },
      python: {
        method: 'parties.teams.members.payment_limits.list',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\npayment_limits = client.parties.teams.members.payment_limits.list(\n    member_id="8c3a2f0e-7b1d-4f6a-9c2e-1e6a2f0b8d3c",\n    party_id="6878951b-256b-4baa-9e81-ad4c577adc4e",\n    team_id="c7068fec-0c6d-40bf-93fa-ad8ca8aeed4a",\n)\nprint(payment_limits.id)',
      },
      java: {
        method: 'parties().teams().members().paymentLimits().list',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.parties.teams.members.paymentlimits.PaymentLimitListParams;\nimport com.plumery.api.models.parties.teams.members.paymentlimits.PaymentLimitListResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        PaymentLimitListParams params = PaymentLimitListParams.builder()\n            .partyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n            .teamId("c7068fec-0c6d-40bf-93fa-ad8ca8aeed4a")\n            .memberId("8c3a2f0e-7b1d-4f6a-9c2e-1e6a2f0b8d3c")\n            .build();\n        PaymentLimitListResponse paymentLimits = client.parties().teams().members().paymentLimits().list(params);\n    }\n}',
      },
      kotlin: {
        method: 'parties().teams().members().paymentLimits().list',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.parties.teams.members.paymentlimits.PaymentLimitListParams\nimport com.plumery.api.models.parties.teams.members.paymentlimits.PaymentLimitListResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: PaymentLimitListParams = PaymentLimitListParams.builder()\n        .partyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n        .teamId("c7068fec-0c6d-40bf-93fa-ad8ca8aeed4a")\n        .memberId("8c3a2f0e-7b1d-4f6a-9c2e-1e6a2f0b8d3c")\n        .build()\n    val paymentLimits: PaymentLimitListResponse = client.parties().teams().members().paymentLimits().list(params)\n}',
      },
      go: {
        method: 'client.Parties.Teams.Members.PaymentLimits.List',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tpaymentLimits, err := client.Parties.Teams.Members.PaymentLimits.List(\n\t\tcontext.TODO(),\n\t\t"6878951b-256b-4baa-9e81-ad4c577adc4e",\n\t\t"c7068fec-0c6d-40bf-93fa-ad8ca8aeed4a",\n\t\t"8c3a2f0e-7b1d-4f6a-9c2e-1e6a2f0b8d3c",\n\t\tplumery.PartyTeamMemberPaymentLimitListParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", paymentLimits.ID)\n}\n',
      },
      cli: {
        method: 'payment-limits list',
        example:
          "plumery parties:teams:members:payment-limits list \\\n  --session 'My Session' \\\n  --party-id 6878951b-256b-4baa-9e81-ad4c577adc4e \\\n  --team-id c7068fec-0c6d-40bf-93fa-ad8ca8aeed4a \\\n  --member-id 8c3a2f0e-7b1d-4f6a-9c2e-1e6a2f0b8d3c",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/parties/$PARTY_ID/teams/$TEAM_ID/members/$MEMBER_ID/payment-limits \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'update',
    endpoint: '/api/v1/parties/{partyId}/teams/{teamId}/members/{memberId}/payment-limits',
    httpMethod: 'put',
    summary: 'Replace Member Limit Profile',
    description:
      'Replace the payment limit profile for a team member within an organisation party\nSubmitting an empty `limits` array clears all member-level limits\n',
    stainlessPath: '(resource) parties.teams.members.payment-limits > (method) update',
    qualified: 'client.parties.teams.members.paymentLimits.update',
    params: [
      'partyId: string;',
      'teamId: string;',
      'memberId: string;',
      'limits: { type: string; paymentTypes?: string[]; }[];',
      'If-Match: string;',
      'plmr-user-action?: boolean;',
    ],
    markdown:
      "## update\n\n`client.parties.teams.members.paymentLimits.update(partyId: string, teamId: string, memberId: string, limits: { type: string; paymentTypes?: string[]; }[], If-Match: string, plmr-user-action?: boolean): void`\n\n**put** `/api/v1/parties/{partyId}/teams/{teamId}/members/{memberId}/payment-limits`\n\nReplace the payment limit profile for a team member within an organisation party\nSubmitting an empty `limits` array clears all member-level limits\n\n\n### Parameters\n\n- `partyId: string`\n\n- `teamId: string`\n\n- `memberId: string`\n\n- `limits: { type: string; paymentTypes?: string[]; }[]`\n\n- `If-Match: string`\n\n- `plmr-user-action?: boolean`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nawait client.parties.teams.members.paymentLimits.update('8c3a2f0e-7b1d-4f6a-9c2e-1e6a2f0b8d3c', {\n  partyId: '6878951b-256b-4baa-9e81-ad4c577adc4e',\n  teamId: 'c7068fec-0c6d-40bf-93fa-ad8ca8aeed4a',\n  limits: [{ type: 'type' }],\n  'If-Match': '\"1\"',\n})\n```",
    perLanguage: {
      typescript: {
        method: 'client.parties.teams.members.paymentLimits.update',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nawait client.parties.teams.members.paymentLimits.update('8c3a2f0e-7b1d-4f6a-9c2e-1e6a2f0b8d3c', {\n  partyId: '6878951b-256b-4baa-9e81-ad4c577adc4e',\n  teamId: 'c7068fec-0c6d-40bf-93fa-ad8ca8aeed4a',\n  limits: [{ type: 'type' }],\n  'If-Match': '\"1\"',\n});",
      },
      python: {
        method: 'parties.teams.members.payment_limits.update',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nclient.parties.teams.members.payment_limits.update(\n    member_id="8c3a2f0e-7b1d-4f6a-9c2e-1e6a2f0b8d3c",\n    party_id="6878951b-256b-4baa-9e81-ad4c577adc4e",\n    team_id="c7068fec-0c6d-40bf-93fa-ad8ca8aeed4a",\n    limits=[{\n        "type": "type"\n    }],\n    if_match="\\"1\\"",\n)',
      },
      java: {
        method: 'parties().teams().members().paymentLimits().update',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.parties.teams.members.paymentlimits.PaymentLimitUpdateParams;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        PaymentLimitUpdateParams params = PaymentLimitUpdateParams.builder()\n            .partyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n            .teamId("c7068fec-0c6d-40bf-93fa-ad8ca8aeed4a")\n            .memberId("8c3a2f0e-7b1d-4f6a-9c2e-1e6a2f0b8d3c")\n            .ifMatch("\\"1\\"")\n            .addLimit(PaymentLimitUpdateParams.Limit.builder()\n                .type("type")\n                .build())\n            .build();\n        client.parties().teams().members().paymentLimits().update(params);\n    }\n}',
      },
      kotlin: {
        method: 'parties().teams().members().paymentLimits().update',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.parties.teams.members.paymentlimits.PaymentLimitUpdateParams\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: PaymentLimitUpdateParams = PaymentLimitUpdateParams.builder()\n        .partyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n        .teamId("c7068fec-0c6d-40bf-93fa-ad8ca8aeed4a")\n        .memberId("8c3a2f0e-7b1d-4f6a-9c2e-1e6a2f0b8d3c")\n        .ifMatch("\\"1\\"")\n        .addLimit(PaymentLimitUpdateParams.Limit.builder()\n            .type("type")\n            .build())\n        .build()\n    client.parties().teams().members().paymentLimits().update(params)\n}',
      },
      go: {
        method: 'client.Parties.Teams.Members.PaymentLimits.Update',
        example:
          'package main\n\nimport (\n\t"context"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\terr := client.Parties.Teams.Members.PaymentLimits.Update(\n\t\tcontext.TODO(),\n\t\t"6878951b-256b-4baa-9e81-ad4c577adc4e",\n\t\t"c7068fec-0c6d-40bf-93fa-ad8ca8aeed4a",\n\t\t"8c3a2f0e-7b1d-4f6a-9c2e-1e6a2f0b8d3c",\n\t\tplumery.PartyTeamMemberPaymentLimitUpdateParams{\n\t\t\tLimits: plumery.F([]plumery.PartyTeamMemberPaymentLimitUpdateParamsLimit{{\n\t\t\t\tType: plumery.F("type"),\n\t\t\t}}),\n\t\t\tIfMatch: plumery.F(`"1"`),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
      },
      cli: {
        method: 'payment-limits update',
        example:
          "plumery parties:teams:members:payment-limits update \\\n  --session 'My Session' \\\n  --party-id 6878951b-256b-4baa-9e81-ad4c577adc4e \\\n  --team-id c7068fec-0c6d-40bf-93fa-ad8ca8aeed4a \\\n  --member-id 8c3a2f0e-7b1d-4f6a-9c2e-1e6a2f0b8d3c \\\n  --limit '{type: type}' \\\n  --if-match '\"1\"'",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/parties/$PARTY_ID/teams/$TEAM_ID/members/$MEMBER_ID/payment-limits \\\n    -X PUT \\\n    -H \'Content-Type: application/json\' \\\n    -H "Cookie: $SESSION" \\\n    -d \'{\n          "limits": [\n            {\n              "type": "type"\n            }\n          ]\n        }\'',
      },
    },
  },
  {
    name: 'create',
    endpoint: '/api/v1/parties/{organisationPartyId}/teams/{teamId}/invitations',
    httpMethod: 'post',
    summary: 'Send invitation',
    description:
      'Send an invitation to new or existing user to join the specific team. The invitation cannot be\nsent with an OWNER role requested as only existing members can be updated to have the OWNER role assigned.\n',
    stainlessPath: '(resource) parties.teams.invitations > (method) create',
    qualified: 'client.parties.teams.invitations.create',
    params: [
      'organisationPartyId: string;',
      'teamId: string;',
      "delivery?: { destination?: string; method?: 'EMAIL'; };",
      'roleId?: string;',
      'plmr-user-action?: boolean;',
    ],
    response:
      "{ delivery?: { destination?: string; method?: 'EMAIL'; }; invitationId?: string; issuerMemberId?: string; role?: { name?: string; roleId?: string; }; status?: 'PENDING_APPROVAL' | 'PENDING' | 'ACCEPTED' | 'REVOKED' | 'REJECTED' | 'EXPIRED'; statusDateTime?: string; }",
    markdown:
      "## create\n\n`client.parties.teams.invitations.create(organisationPartyId: string, teamId: string, delivery?: { destination?: string; method?: 'EMAIL'; }, roleId?: string, plmr-user-action?: boolean): { delivery?: object; invitationId?: string; issuerMemberId?: string; role?: object; status?: 'PENDING_APPROVAL' | 'PENDING' | 'ACCEPTED' | 'REVOKED' | 'REJECTED' | 'EXPIRED'; statusDateTime?: string; }`\n\n**post** `/api/v1/parties/{organisationPartyId}/teams/{teamId}/invitations`\n\nSend an invitation to new or existing user to join the specific team. The invitation cannot be\nsent with an OWNER role requested as only existing members can be updated to have the OWNER role assigned.\n\n\n### Parameters\n\n- `organisationPartyId: string`\n\n- `teamId: string`\n\n- `delivery?: { destination?: string; method?: 'EMAIL'; }`\n  Details about the delivery method and destination of an invitation.\n  - `destination?: string`\n    The specific destination (email or phone number) where the invitation was sent.\n  - `method?: 'EMAIL'`\n    The method used to deliver the invitation.\n\n- `roleId?: string`\n  The stable role ID which will remain consistent even if the role's actual name is changed.\n\n- `plmr-user-action?: boolean`\n\n### Returns\n\n- `{ delivery?: { destination?: string; method?: 'EMAIL'; }; invitationId?: string; issuerMemberId?: string; role?: { name?: string; roleId?: string; }; status?: 'PENDING_APPROVAL' | 'PENDING' | 'ACCEPTED' | 'REVOKED' | 'REJECTED' | 'EXPIRED'; statusDateTime?: string; }`\n  Represents information on the invite to join the team, if available. This information will not be populated if \nthe system created the member without an invitation.\n\n\n  - `delivery?: { destination?: string; method?: 'EMAIL'; }`\n  - `invitationId?: string`\n  - `issuerMemberId?: string`\n  - `role?: { name?: string; roleId?: string; }`\n  - `status?: 'PENDING_APPROVAL' | 'PENDING' | 'ACCEPTED' | 'REVOKED' | 'REJECTED' | 'EXPIRED'`\n  - `statusDateTime?: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst invitation = await client.parties.teams.invitations.create('ae18e3de-afb1-4434-a7cc-e4a9e5e8fc31', { organisationPartyId: '6878951b-256b-4baa-9e81-ad4c577adc4e' });\n\nconsole.log(invitation);\n```",
    perLanguage: {
      typescript: {
        method: 'client.parties.teams.invitations.create',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nconst invitation = await client.parties.teams.invitations.create(\n  'ae18e3de-afb1-4434-a7cc-e4a9e5e8fc31',\n  { organisationPartyId: '6878951b-256b-4baa-9e81-ad4c577adc4e' },\n);\n\nconsole.log(invitation.delivery);",
      },
      python: {
        method: 'parties.teams.invitations.create',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\ninvitation = client.parties.teams.invitations.create(\n    team_id="ae18e3de-afb1-4434-a7cc-e4a9e5e8fc31",\n    organisation_party_id="6878951b-256b-4baa-9e81-ad4c577adc4e",\n)\nprint(invitation.delivery)',
      },
      java: {
        method: 'parties().teams().invitations().create',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.parties.teams.invitations.InvitationCreateParams;\nimport com.plumery.api.models.parties.teams.invitations.InvitationCreateResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        InvitationCreateParams params = InvitationCreateParams.builder()\n            .organisationPartyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n            .teamId("ae18e3de-afb1-4434-a7cc-e4a9e5e8fc31")\n            .build();\n        InvitationCreateResponse invitation = client.parties().teams().invitations().create(params);\n    }\n}',
      },
      kotlin: {
        method: 'parties().teams().invitations().create',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.parties.teams.invitations.InvitationCreateParams\nimport com.plumery.api.models.parties.teams.invitations.InvitationCreateResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: InvitationCreateParams = InvitationCreateParams.builder()\n        .organisationPartyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n        .teamId("ae18e3de-afb1-4434-a7cc-e4a9e5e8fc31")\n        .build()\n    val invitation: InvitationCreateResponse = client.parties().teams().invitations().create(params)\n}',
      },
      go: {
        method: 'client.Parties.Teams.Invitations.New',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tinvitation, err := client.Parties.Teams.Invitations.New(\n\t\tcontext.TODO(),\n\t\t"6878951b-256b-4baa-9e81-ad4c577adc4e",\n\t\t"ae18e3de-afb1-4434-a7cc-e4a9e5e8fc31",\n\t\tplumery.PartyTeamInvitationNewParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", invitation.Delivery)\n}\n',
      },
      cli: {
        method: 'invitations create',
        example:
          "plumery parties:teams:invitations create \\\n  --session 'My Session' \\\n  --organisation-party-id 6878951b-256b-4baa-9e81-ad4c577adc4e \\\n  --team-id ae18e3de-afb1-4434-a7cc-e4a9e5e8fc31",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/parties/$ORGANISATION_PARTY_ID/teams/$TEAM_ID/invitations \\\n    -X POST \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'list',
    endpoint: '/api/v1/parties/{organisationPartyId}/teams/{teamId}/invitations',
    httpMethod: 'get',
    summary: 'Retrieve invitations',
    description: 'Retrieve a list of invitations associated with the specified team.\n',
    stainlessPath: '(resource) parties.teams.invitations > (method) list',
    qualified: 'client.parties.teams.invitations.list',
    params: [
      'organisationPartyId: string;',
      'teamId: string;',
      "status?: 'PENDING_APPROVAL' | 'PENDING' | 'ACCEPTED' | 'REVOKED' | 'REJECTED' | 'EXPIRED'[];",
      'plmr-user-action?: boolean;',
    ],
    response:
      "{ invitations?: { delivery?: { destination?: string; method?: 'EMAIL'; }; invitationId?: string; issuerMemberId?: string; role?: { name?: string; roleId?: string; }; status?: 'PENDING_APPROVAL' | 'PENDING' | 'ACCEPTED' | 'REVOKED' | 'REJECTED' | 'EXPIRED'; statusDateTime?: string; }[]; }",
    markdown:
      "## list\n\n`client.parties.teams.invitations.list(organisationPartyId: string, teamId: string, status?: 'PENDING_APPROVAL' | 'PENDING' | 'ACCEPTED' | 'REVOKED' | 'REJECTED' | 'EXPIRED'[], plmr-user-action?: boolean): { invitations?: object[]; }`\n\n**get** `/api/v1/parties/{organisationPartyId}/teams/{teamId}/invitations`\n\nRetrieve a list of invitations associated with the specified team.\n\n\n### Parameters\n\n- `organisationPartyId: string`\n\n- `teamId: string`\n\n- `status?: 'PENDING_APPROVAL' | 'PENDING' | 'ACCEPTED' | 'REVOKED' | 'REJECTED' | 'EXPIRED'[]`\n  Retrieve invitations matching a specific status (e.g., PENDING, EXPIRED). If unset, the filter will be ignored \nand all invitations will be retrieved.\n\n\n- `plmr-user-action?: boolean`\n\n### Returns\n\n- `{ invitations?: { delivery?: { destination?: string; method?: 'EMAIL'; }; invitationId?: string; issuerMemberId?: string; role?: { name?: string; roleId?: string; }; status?: 'PENDING_APPROVAL' | 'PENDING' | 'ACCEPTED' | 'REVOKED' | 'REJECTED' | 'EXPIRED'; statusDateTime?: string; }[]; }`\n  Invitations response details\n\n  - `invitations?: { delivery?: { destination?: string; method?: 'EMAIL'; }; invitationId?: string; issuerMemberId?: string; role?: { name?: string; roleId?: string; }; status?: 'PENDING_APPROVAL' | 'PENDING' | 'ACCEPTED' | 'REVOKED' | 'REJECTED' | 'EXPIRED'; statusDateTime?: string; }[]`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst invitations = await client.parties.teams.invitations.list('ae18e3de-afb1-4434-a7cc-e4a9e5e8fc31', { organisationPartyId: '6878951b-256b-4baa-9e81-ad4c577adc4e' });\n\nconsole.log(invitations);\n```",
    perLanguage: {
      typescript: {
        method: 'client.parties.teams.invitations.list',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nconst invitations = await client.parties.teams.invitations.list(\n  'ae18e3de-afb1-4434-a7cc-e4a9e5e8fc31',\n  { organisationPartyId: '6878951b-256b-4baa-9e81-ad4c577adc4e' },\n);\n\nconsole.log(invitations.invitations);",
      },
      python: {
        method: 'parties.teams.invitations.list',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\ninvitations = client.parties.teams.invitations.list(\n    team_id="ae18e3de-afb1-4434-a7cc-e4a9e5e8fc31",\n    organisation_party_id="6878951b-256b-4baa-9e81-ad4c577adc4e",\n)\nprint(invitations.invitations)',
      },
      java: {
        method: 'parties().teams().invitations().list',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.parties.teams.invitations.InvitationListParams;\nimport com.plumery.api.models.parties.teams.invitations.InvitationListResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        InvitationListParams params = InvitationListParams.builder()\n            .organisationPartyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n            .teamId("ae18e3de-afb1-4434-a7cc-e4a9e5e8fc31")\n            .build();\n        InvitationListResponse invitations = client.parties().teams().invitations().list(params);\n    }\n}',
      },
      kotlin: {
        method: 'parties().teams().invitations().list',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.parties.teams.invitations.InvitationListParams\nimport com.plumery.api.models.parties.teams.invitations.InvitationListResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: InvitationListParams = InvitationListParams.builder()\n        .organisationPartyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n        .teamId("ae18e3de-afb1-4434-a7cc-e4a9e5e8fc31")\n        .build()\n    val invitations: InvitationListResponse = client.parties().teams().invitations().list(params)\n}',
      },
      go: {
        method: 'client.Parties.Teams.Invitations.List',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tinvitations, err := client.Parties.Teams.Invitations.List(\n\t\tcontext.TODO(),\n\t\t"6878951b-256b-4baa-9e81-ad4c577adc4e",\n\t\t"ae18e3de-afb1-4434-a7cc-e4a9e5e8fc31",\n\t\tplumery.PartyTeamInvitationListParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", invitations.Invitations)\n}\n',
      },
      cli: {
        method: 'invitations list',
        example:
          "plumery parties:teams:invitations list \\\n  --session 'My Session' \\\n  --organisation-party-id 6878951b-256b-4baa-9e81-ad4c577adc4e \\\n  --team-id ae18e3de-afb1-4434-a7cc-e4a9e5e8fc31",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/parties/$ORGANISATION_PARTY_ID/teams/$TEAM_ID/invitations \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'retrieve',
    endpoint: '/api/v1/parties/{organisationPartyId}/teams/{teamId}/invitations/{invitationId}',
    httpMethod: 'get',
    summary: 'Retrieve invitation',
    description: 'Retrieve a detailed information of a specified invitation\n',
    stainlessPath: '(resource) parties.teams.invitations > (method) retrieve',
    qualified: 'client.parties.teams.invitations.retrieve',
    params: [
      'organisationPartyId: string;',
      'teamId: string;',
      'invitationId: string;',
      'plmr-user-action?: boolean;',
    ],
    response:
      "{ delivery?: { destination?: string; method?: 'EMAIL'; }; invitationId?: string; issuerMemberId?: string; role?: { name?: string; roleId?: string; }; status?: 'PENDING_APPROVAL' | 'PENDING' | 'ACCEPTED' | 'REVOKED' | 'REJECTED' | 'EXPIRED'; statusDateTime?: string; }",
    markdown:
      "## retrieve\n\n`client.parties.teams.invitations.retrieve(organisationPartyId: string, teamId: string, invitationId: string, plmr-user-action?: boolean): { delivery?: object; invitationId?: string; issuerMemberId?: string; role?: object; status?: 'PENDING_APPROVAL' | 'PENDING' | 'ACCEPTED' | 'REVOKED' | 'REJECTED' | 'EXPIRED'; statusDateTime?: string; }`\n\n**get** `/api/v1/parties/{organisationPartyId}/teams/{teamId}/invitations/{invitationId}`\n\nRetrieve a detailed information of a specified invitation\n\n\n### Parameters\n\n- `organisationPartyId: string`\n\n- `teamId: string`\n\n- `invitationId: string`\n\n- `plmr-user-action?: boolean`\n\n### Returns\n\n- `{ delivery?: { destination?: string; method?: 'EMAIL'; }; invitationId?: string; issuerMemberId?: string; role?: { name?: string; roleId?: string; }; status?: 'PENDING_APPROVAL' | 'PENDING' | 'ACCEPTED' | 'REVOKED' | 'REJECTED' | 'EXPIRED'; statusDateTime?: string; }`\n  Represents information on the invite to join the team, if available. This information will not be populated if \nthe system created the member without an invitation.\n\n\n  - `delivery?: { destination?: string; method?: 'EMAIL'; }`\n  - `invitationId?: string`\n  - `issuerMemberId?: string`\n  - `role?: { name?: string; roleId?: string; }`\n  - `status?: 'PENDING_APPROVAL' | 'PENDING' | 'ACCEPTED' | 'REVOKED' | 'REJECTED' | 'EXPIRED'`\n  - `statusDateTime?: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst invitation = await client.parties.teams.invitations.retrieve('1adcdcc1-e39e-4fd0-91d7-22a606c25622', { organisationPartyId: '6878951b-256b-4baa-9e81-ad4c577adc4e', teamId: 'ae18e3de-afb1-4434-a7cc-e4a9e5e8fc31' });\n\nconsole.log(invitation);\n```",
    perLanguage: {
      typescript: {
        method: 'client.parties.teams.invitations.retrieve',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nconst invitation = await client.parties.teams.invitations.retrieve(\n  '1adcdcc1-e39e-4fd0-91d7-22a606c25622',\n  {\n    organisationPartyId: '6878951b-256b-4baa-9e81-ad4c577adc4e',\n    teamId: 'ae18e3de-afb1-4434-a7cc-e4a9e5e8fc31',\n  },\n);\n\nconsole.log(invitation.delivery);",
      },
      python: {
        method: 'parties.teams.invitations.retrieve',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\ninvitation = client.parties.teams.invitations.retrieve(\n    invitation_id="1adcdcc1-e39e-4fd0-91d7-22a606c25622",\n    organisation_party_id="6878951b-256b-4baa-9e81-ad4c577adc4e",\n    team_id="ae18e3de-afb1-4434-a7cc-e4a9e5e8fc31",\n)\nprint(invitation.delivery)',
      },
      java: {
        method: 'parties().teams().invitations().retrieve',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.parties.teams.invitations.InvitationRetrieveParams;\nimport com.plumery.api.models.parties.teams.invitations.InvitationRetrieveResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        InvitationRetrieveParams params = InvitationRetrieveParams.builder()\n            .organisationPartyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n            .teamId("ae18e3de-afb1-4434-a7cc-e4a9e5e8fc31")\n            .invitationId("1adcdcc1-e39e-4fd0-91d7-22a606c25622")\n            .build();\n        InvitationRetrieveResponse invitation = client.parties().teams().invitations().retrieve(params);\n    }\n}',
      },
      kotlin: {
        method: 'parties().teams().invitations().retrieve',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.parties.teams.invitations.InvitationRetrieveParams\nimport com.plumery.api.models.parties.teams.invitations.InvitationRetrieveResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: InvitationRetrieveParams = InvitationRetrieveParams.builder()\n        .organisationPartyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n        .teamId("ae18e3de-afb1-4434-a7cc-e4a9e5e8fc31")\n        .invitationId("1adcdcc1-e39e-4fd0-91d7-22a606c25622")\n        .build()\n    val invitation: InvitationRetrieveResponse = client.parties().teams().invitations().retrieve(params)\n}',
      },
      go: {
        method: 'client.Parties.Teams.Invitations.Get',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tinvitation, err := client.Parties.Teams.Invitations.Get(\n\t\tcontext.TODO(),\n\t\t"6878951b-256b-4baa-9e81-ad4c577adc4e",\n\t\t"ae18e3de-afb1-4434-a7cc-e4a9e5e8fc31",\n\t\t"1adcdcc1-e39e-4fd0-91d7-22a606c25622",\n\t\tplumery.PartyTeamInvitationGetParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", invitation.Delivery)\n}\n',
      },
      cli: {
        method: 'invitations retrieve',
        example:
          "plumery parties:teams:invitations retrieve \\\n  --session 'My Session' \\\n  --organisation-party-id 6878951b-256b-4baa-9e81-ad4c577adc4e \\\n  --team-id ae18e3de-afb1-4434-a7cc-e4a9e5e8fc31 \\\n  --invitation-id 1adcdcc1-e39e-4fd0-91d7-22a606c25622",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/parties/$ORGANISATION_PARTY_ID/teams/$TEAM_ID/invitations/$INVITATION_ID \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'resend',
    endpoint: '/api/v1/parties/{organisationPartyId}/teams/{teamId}/invitations/{invitationId}:resend',
    httpMethod: 'post',
    summary: 'Resend invitation',
    description:
      'Resend already existing invitation. This operation can only be called for invitations with status PENDING. Will \nreturn BadRequest for other invitation statuses.\n',
    stainlessPath: '(resource) parties.teams.invitations > (method) resend',
    qualified: 'client.parties.teams.invitations.resend',
    params: [
      'organisationPartyId: string;',
      'teamId: string;',
      'invitationId: string;',
      'plmr-user-action?: boolean;',
    ],
    markdown:
      "## resend\n\n`client.parties.teams.invitations.resend(organisationPartyId: string, teamId: string, invitationId: string, plmr-user-action?: boolean): void`\n\n**post** `/api/v1/parties/{organisationPartyId}/teams/{teamId}/invitations/{invitationId}:resend`\n\nResend already existing invitation. This operation can only be called for invitations with status PENDING. Will \nreturn BadRequest for other invitation statuses.\n\n\n### Parameters\n\n- `organisationPartyId: string`\n\n- `teamId: string`\n\n- `invitationId: string`\n\n- `plmr-user-action?: boolean`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nawait client.parties.teams.invitations.resend('1adcdcc1-e39e-4fd0-91d7-22a606c25622', { organisationPartyId: '6878951b-256b-4baa-9e81-ad4c577adc4e', teamId: 'ae18e3de-afb1-4434-a7cc-e4a9e5e8fc31' })\n```",
    perLanguage: {
      typescript: {
        method: 'client.parties.teams.invitations.resend',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nawait client.parties.teams.invitations.resend('1adcdcc1-e39e-4fd0-91d7-22a606c25622', {\n  organisationPartyId: '6878951b-256b-4baa-9e81-ad4c577adc4e',\n  teamId: 'ae18e3de-afb1-4434-a7cc-e4a9e5e8fc31',\n});",
      },
      python: {
        method: 'parties.teams.invitations.resend',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nclient.parties.teams.invitations.resend(\n    invitation_id="1adcdcc1-e39e-4fd0-91d7-22a606c25622",\n    organisation_party_id="6878951b-256b-4baa-9e81-ad4c577adc4e",\n    team_id="ae18e3de-afb1-4434-a7cc-e4a9e5e8fc31",\n)',
      },
      java: {
        method: 'parties().teams().invitations().resend',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.parties.teams.invitations.InvitationResendParams;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        InvitationResendParams params = InvitationResendParams.builder()\n            .organisationPartyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n            .teamId("ae18e3de-afb1-4434-a7cc-e4a9e5e8fc31")\n            .invitationId("1adcdcc1-e39e-4fd0-91d7-22a606c25622")\n            .build();\n        client.parties().teams().invitations().resend(params);\n    }\n}',
      },
      kotlin: {
        method: 'parties().teams().invitations().resend',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.parties.teams.invitations.InvitationResendParams\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: InvitationResendParams = InvitationResendParams.builder()\n        .organisationPartyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n        .teamId("ae18e3de-afb1-4434-a7cc-e4a9e5e8fc31")\n        .invitationId("1adcdcc1-e39e-4fd0-91d7-22a606c25622")\n        .build()\n    client.parties().teams().invitations().resend(params)\n}',
      },
      go: {
        method: 'client.Parties.Teams.Invitations.Resend',
        example:
          'package main\n\nimport (\n\t"context"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\terr := client.Parties.Teams.Invitations.Resend(\n\t\tcontext.TODO(),\n\t\t"6878951b-256b-4baa-9e81-ad4c577adc4e",\n\t\t"ae18e3de-afb1-4434-a7cc-e4a9e5e8fc31",\n\t\t"1adcdcc1-e39e-4fd0-91d7-22a606c25622",\n\t\tplumery.PartyTeamInvitationResendParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
      },
      cli: {
        method: 'invitations resend',
        example:
          "plumery parties:teams:invitations resend \\\n  --session 'My Session' \\\n  --organisation-party-id 6878951b-256b-4baa-9e81-ad4c577adc4e \\\n  --team-id ae18e3de-afb1-4434-a7cc-e4a9e5e8fc31 \\\n  --invitation-id 1adcdcc1-e39e-4fd0-91d7-22a606c25622",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/parties/$ORGANISATION_PARTY_ID/teams/$TEAM_ID/invitations/$INVITATION_ID:resend \\\n    -X POST \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'revoke',
    endpoint: '/api/v1/parties/{organisationPartyId}/teams/{teamId}/invitations/{invitationId}:revoke',
    httpMethod: 'post',
    summary: 'Revoke invitation',
    description:
      'Revoke invitation that is already sent. This operation can only be called for invitations with status PENDING. \nWill return BadRequest for other invitation statuses.\n',
    stainlessPath: '(resource) parties.teams.invitations > (method) revoke',
    qualified: 'client.parties.teams.invitations.revoke',
    params: [
      'organisationPartyId: string;',
      'teamId: string;',
      'invitationId: string;',
      'plmr-user-action?: boolean;',
    ],
    markdown:
      "## revoke\n\n`client.parties.teams.invitations.revoke(organisationPartyId: string, teamId: string, invitationId: string, plmr-user-action?: boolean): void`\n\n**post** `/api/v1/parties/{organisationPartyId}/teams/{teamId}/invitations/{invitationId}:revoke`\n\nRevoke invitation that is already sent. This operation can only be called for invitations with status PENDING. \nWill return BadRequest for other invitation statuses.\n\n\n### Parameters\n\n- `organisationPartyId: string`\n\n- `teamId: string`\n\n- `invitationId: string`\n\n- `plmr-user-action?: boolean`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nawait client.parties.teams.invitations.revoke('1adcdcc1-e39e-4fd0-91d7-22a606c25622', { organisationPartyId: '6878951b-256b-4baa-9e81-ad4c577adc4e', teamId: 'ae18e3de-afb1-4434-a7cc-e4a9e5e8fc31' })\n```",
    perLanguage: {
      typescript: {
        method: 'client.parties.teams.invitations.revoke',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nawait client.parties.teams.invitations.revoke('1adcdcc1-e39e-4fd0-91d7-22a606c25622', {\n  organisationPartyId: '6878951b-256b-4baa-9e81-ad4c577adc4e',\n  teamId: 'ae18e3de-afb1-4434-a7cc-e4a9e5e8fc31',\n});",
      },
      python: {
        method: 'parties.teams.invitations.revoke',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nclient.parties.teams.invitations.revoke(\n    invitation_id="1adcdcc1-e39e-4fd0-91d7-22a606c25622",\n    organisation_party_id="6878951b-256b-4baa-9e81-ad4c577adc4e",\n    team_id="ae18e3de-afb1-4434-a7cc-e4a9e5e8fc31",\n)',
      },
      java: {
        method: 'parties().teams().invitations().revoke',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.parties.teams.invitations.InvitationRevokeParams;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        InvitationRevokeParams params = InvitationRevokeParams.builder()\n            .organisationPartyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n            .teamId("ae18e3de-afb1-4434-a7cc-e4a9e5e8fc31")\n            .invitationId("1adcdcc1-e39e-4fd0-91d7-22a606c25622")\n            .build();\n        client.parties().teams().invitations().revoke(params);\n    }\n}',
      },
      kotlin: {
        method: 'parties().teams().invitations().revoke',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.parties.teams.invitations.InvitationRevokeParams\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: InvitationRevokeParams = InvitationRevokeParams.builder()\n        .organisationPartyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n        .teamId("ae18e3de-afb1-4434-a7cc-e4a9e5e8fc31")\n        .invitationId("1adcdcc1-e39e-4fd0-91d7-22a606c25622")\n        .build()\n    client.parties().teams().invitations().revoke(params)\n}',
      },
      go: {
        method: 'client.Parties.Teams.Invitations.Revoke',
        example:
          'package main\n\nimport (\n\t"context"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\terr := client.Parties.Teams.Invitations.Revoke(\n\t\tcontext.TODO(),\n\t\t"6878951b-256b-4baa-9e81-ad4c577adc4e",\n\t\t"ae18e3de-afb1-4434-a7cc-e4a9e5e8fc31",\n\t\t"1adcdcc1-e39e-4fd0-91d7-22a606c25622",\n\t\tplumery.PartyTeamInvitationRevokeParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
      },
      cli: {
        method: 'invitations revoke',
        example:
          "plumery parties:teams:invitations revoke \\\n  --session 'My Session' \\\n  --organisation-party-id 6878951b-256b-4baa-9e81-ad4c577adc4e \\\n  --team-id ae18e3de-afb1-4434-a7cc-e4a9e5e8fc31 \\\n  --invitation-id 1adcdcc1-e39e-4fd0-91d7-22a606c25622",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/parties/$ORGANISATION_PARTY_ID/teams/$TEAM_ID/invitations/$INVITATION_ID:revoke \\\n    -X POST \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'list',
    endpoint: '/api/v1/parties/{organisationPartyId}/roles',
    httpMethod: 'get',
    summary: 'Retrieve organisation roles',
    description:
      'This endpoint provides a list of roles that can be assigned to teams within a specified organisation. There are several\npredefined roles - OWNER, ADMIN, FINANCE_MANAGER and other which could be added in the future each with its own \nassociated permissions. These roles are fixed and their permissions cannot be updated. In the future users will be able \nto add new roles and assign permissions to these newly created roles. The roles and permissions \nassignments are organisation-specific, which means changes made to a role in one organisation do not reflect in\nanother. This allows each organisation to have its own  uniquely defined roles along with the fixed predefined roles.\n',
    stainlessPath: '(resource) parties.roles > (method) list',
    qualified: 'client.parties.roles.list',
    params: [
      'organisationPartyId: string;',
      'expandPermissions?: boolean;',
      'teamTypeId?: string;',
      'plmr-user-action?: boolean;',
      'X-Request-ID?: string;',
    ],
    response:
      '{ roles?: { name?: string; permissions?: { action?: string; category?: string; resource?: string; }[]; roleId?: string; }[]; }',
    markdown:
      "## list\n\n`client.parties.roles.list(organisationPartyId: string, expandPermissions?: boolean, teamTypeId?: string, plmr-user-action?: boolean, X-Request-ID?: string): { roles?: object[]; }`\n\n**get** `/api/v1/parties/{organisationPartyId}/roles`\n\nThis endpoint provides a list of roles that can be assigned to teams within a specified organisation. There are several\npredefined roles - OWNER, ADMIN, FINANCE_MANAGER and other which could be added in the future each with its own \nassociated permissions. These roles are fixed and their permissions cannot be updated. In the future users will be able \nto add new roles and assign permissions to these newly created roles. The roles and permissions \nassignments are organisation-specific, which means changes made to a role in one organisation do not reflect in\nanother. This allows each organisation to have its own  uniquely defined roles along with the fixed predefined roles.\n\n\n### Parameters\n\n- `organisationPartyId: string`\n\n- `expandPermissions?: boolean`\n  This parameter influences the information about roles provided in the response. If it is set to 'true', \nthe response will include permissions associated with each role. If 'false' or not provided, the response \nwill only include roles without their respective permissions.\n\n\n- `teamTypeId?: string`\n  When provided, only roles associated with the given team type are returned. If not provided,\nall roles are returned.\n\n\n- `plmr-user-action?: boolean`\n\n- `X-Request-ID?: string`\n\n### Returns\n\n- `{ roles?: { name?: string; permissions?: { action?: string; category?: string; resource?: string; }[]; roleId?: string; }[]; }`\n  Contains the details of all roles available within a specified organisation, including their associated permissions, if this was requested.\n\n  - `roles?: { name?: string; permissions?: { action?: string; category?: string; resource?: string; }[]; roleId?: string; }[]`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst roles = await client.parties.roles.list('6878951b-256b-4baa-9e81-ad4c577adc4e');\n\nconsole.log(roles);\n```",
    perLanguage: {
      typescript: {
        method: 'client.parties.roles.list',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nconst roles = await client.parties.roles.list('6878951b-256b-4baa-9e81-ad4c577adc4e');\n\nconsole.log(roles.roles);",
      },
      python: {
        method: 'parties.roles.list',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nroles = client.parties.roles.list(\n    organisation_party_id="6878951b-256b-4baa-9e81-ad4c577adc4e",\n)\nprint(roles.roles)',
      },
      java: {
        method: 'parties().roles().list',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.parties.roles.RoleListParams;\nimport com.plumery.api.models.parties.roles.RoleListResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        RoleListResponse roles = client.parties().roles().list("6878951b-256b-4baa-9e81-ad4c577adc4e");\n    }\n}',
      },
      kotlin: {
        method: 'parties().roles().list',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.parties.roles.RoleListParams\nimport com.plumery.api.models.parties.roles.RoleListResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val roles: RoleListResponse = client.parties().roles().list("6878951b-256b-4baa-9e81-ad4c577adc4e")\n}',
      },
      go: {
        method: 'client.Parties.Roles.List',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\troles, err := client.Parties.Roles.List(\n\t\tcontext.TODO(),\n\t\t"6878951b-256b-4baa-9e81-ad4c577adc4e",\n\t\tplumery.PartyRoleListParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", roles.Roles)\n}\n',
      },
      cli: {
        method: 'roles list',
        example:
          "plumery parties:roles list \\\n  --session 'My Session' \\\n  --organisation-party-id 6878951b-256b-4baa-9e81-ad4c577adc4e",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/parties/$ORGANISATION_PARTY_ID/roles \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'list',
    endpoint: '/api/v1/parties/{organisationPartyId}/roles/{roleId}/permissions',
    httpMethod: 'get',
    summary: 'Retrieve specific role permissions',
    description:
      "Retrieve the list of permissions assigned to a particular role within a given organisation. The allows\ngranular understanding of the role's responsibilities within the specific context.\n",
    stainlessPath: '(resource) parties.roles.permissions > (method) list',
    qualified: 'client.parties.roles.permissions.list',
    params: [
      'organisationPartyId: string;',
      'roleId: string;',
      'plmr-user-action?: boolean;',
      'X-Request-ID?: string;',
    ],
    response: '{ permissions?: { action?: string; category?: string; resource?: string; }[]; }',
    markdown:
      "## list\n\n`client.parties.roles.permissions.list(organisationPartyId: string, roleId: string, plmr-user-action?: boolean, X-Request-ID?: string): { permissions?: object[]; }`\n\n**get** `/api/v1/parties/{organisationPartyId}/roles/{roleId}/permissions`\n\nRetrieve the list of permissions assigned to a particular role within a given organisation. The allows\ngranular understanding of the role's responsibilities within the specific context.\n\n\n### Parameters\n\n- `organisationPartyId: string`\n\n- `roleId: string`\n\n- `plmr-user-action?: boolean`\n\n- `X-Request-ID?: string`\n\n### Returns\n\n- `{ permissions?: { action?: string; category?: string; resource?: string; }[]; }`\n  Contains a list of all permissions that can be assigned within an organisation.\n\n  - `permissions?: { action?: string; category?: string; resource?: string; }[]`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst permissions = await client.parties.roles.permissions.list('3e1250a2-742f-4808-a10a-b9bb8af32f53', { organisationPartyId: '6878951b-256b-4baa-9e81-ad4c577adc4e' });\n\nconsole.log(permissions);\n```",
    perLanguage: {
      typescript: {
        method: 'client.parties.roles.permissions.list',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nconst permissions = await client.parties.roles.permissions.list(\n  '3e1250a2-742f-4808-a10a-b9bb8af32f53',\n  { organisationPartyId: '6878951b-256b-4baa-9e81-ad4c577adc4e' },\n);\n\nconsole.log(permissions.permissions);",
      },
      python: {
        method: 'parties.roles.permissions.list',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\npermissions = client.parties.roles.permissions.list(\n    role_id="3e1250a2-742f-4808-a10a-b9bb8af32f53",\n    organisation_party_id="6878951b-256b-4baa-9e81-ad4c577adc4e",\n)\nprint(permissions.permissions)',
      },
      java: {
        method: 'parties().roles().permissions().list',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.parties.roles.permissions.PermissionListParams;\nimport com.plumery.api.models.parties.roles.permissions.PermissionListResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        PermissionListParams params = PermissionListParams.builder()\n            .organisationPartyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n            .roleId("3e1250a2-742f-4808-a10a-b9bb8af32f53")\n            .build();\n        PermissionListResponse permissions = client.parties().roles().permissions().list(params);\n    }\n}',
      },
      kotlin: {
        method: 'parties().roles().permissions().list',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.parties.roles.permissions.PermissionListParams\nimport com.plumery.api.models.parties.roles.permissions.PermissionListResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: PermissionListParams = PermissionListParams.builder()\n        .organisationPartyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n        .roleId("3e1250a2-742f-4808-a10a-b9bb8af32f53")\n        .build()\n    val permissions: PermissionListResponse = client.parties().roles().permissions().list(params)\n}',
      },
      go: {
        method: 'client.Parties.Roles.Permissions.List',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tpermissions, err := client.Parties.Roles.Permissions.List(\n\t\tcontext.TODO(),\n\t\t"6878951b-256b-4baa-9e81-ad4c577adc4e",\n\t\t"3e1250a2-742f-4808-a10a-b9bb8af32f53",\n\t\tplumery.PartyRolePermissionListParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", permissions.Permissions)\n}\n',
      },
      cli: {
        method: 'permissions list',
        example:
          "plumery parties:roles:permissions list \\\n  --session 'My Session' \\\n  --organisation-party-id 6878951b-256b-4baa-9e81-ad4c577adc4e \\\n  --role-id 3e1250a2-742f-4808-a10a-b9bb8af32f53",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/parties/$ORGANISATION_PARTY_ID/roles/$ROLE_ID/permissions \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'create',
    endpoint: '/api/v1/parties/{partyId}/loan-applications',
    httpMethod: 'post',
    summary: 'Initiate New Loan Application For An Existing Party',
    description:
      'Initiate the loan application process for an existing party. This should always be the first step of the loan application process.',
    stainlessPath: '(resource) parties.loan-applications > (method) create',
    qualified: 'client.parties.loanApplications.create',
    params: [
      'partyId: string;',
      "loanApplicationType: 'RETAIL' | 'BUSINESS';",
      'productId?: string;',
      'plmr-user-action?: boolean;',
      'X-Request-ID?: string;',
    ],
    response: '{ loanApplicationId?: string; }',
    markdown:
      "## create\n\n`client.parties.loanApplications.create(partyId: string, loanApplicationType: 'RETAIL' | 'BUSINESS', productId?: string, plmr-user-action?: boolean, X-Request-ID?: string): { loanApplicationId?: string; }`\n\n**post** `/api/v1/parties/{partyId}/loan-applications`\n\nInitiate the loan application process for an existing party. This should always be the first step of the loan application process.\n\n### Parameters\n\n- `partyId: string`\n\n- `loanApplicationType: 'RETAIL' | 'BUSINESS'`\n\n- `productId?: string`\n  The loan product id from core banking engine. Mandatory for business loan applications.\n\n- `plmr-user-action?: boolean`\n\n- `X-Request-ID?: string`\n\n### Returns\n\n- `{ loanApplicationId?: string; }`\n\n  - `loanApplicationId?: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst loanApplication = await client.parties.loanApplications.create('36a22460-ebc8-4ffe-a213-1683c5a420c5', { loanApplicationType: 'RETAIL' });\n\nconsole.log(loanApplication);\n```",
    perLanguage: {
      typescript: {
        method: 'client.parties.loanApplications.create',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nconst loanApplication = await client.parties.loanApplications.create(\n  '36a22460-ebc8-4ffe-a213-1683c5a420c5',\n  { loanApplicationType: 'RETAIL' },\n);\n\nconsole.log(loanApplication.loanApplicationId);",
      },
      python: {
        method: 'parties.loan_applications.create',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nloan_application = client.parties.loan_applications.create(\n    party_id="36a22460-ebc8-4ffe-a213-1683c5a420c5",\n    loan_application_type="RETAIL",\n)\nprint(loan_application.loan_application_id)',
      },
      java: {
        method: 'parties().loanApplications().create',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.parties.loanapplications.LoanApplicationCreateParams;\nimport com.plumery.api.models.parties.loanapplications.LoanApplicationCreateResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        LoanApplicationCreateParams params = LoanApplicationCreateParams.builder()\n            .partyId("36a22460-ebc8-4ffe-a213-1683c5a420c5")\n            .loanApplicationType(LoanApplicationCreateParams.LoanApplicationType.RETAIL)\n            .build();\n        LoanApplicationCreateResponse loanApplication = client.parties().loanApplications().create(params);\n    }\n}',
      },
      kotlin: {
        method: 'parties().loanApplications().create',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.parties.loanapplications.LoanApplicationCreateParams\nimport com.plumery.api.models.parties.loanapplications.LoanApplicationCreateResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: LoanApplicationCreateParams = LoanApplicationCreateParams.builder()\n        .partyId("36a22460-ebc8-4ffe-a213-1683c5a420c5")\n        .loanApplicationType(LoanApplicationCreateParams.LoanApplicationType.RETAIL)\n        .build()\n    val loanApplication: LoanApplicationCreateResponse = client.parties().loanApplications().create(params)\n}',
      },
      go: {
        method: 'client.Parties.LoanApplications.New',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tloanApplication, err := client.Parties.LoanApplications.New(\n\t\tcontext.TODO(),\n\t\t"36a22460-ebc8-4ffe-a213-1683c5a420c5",\n\t\tplumery.PartyLoanApplicationNewParams{\n\t\t\tLoanApplicationType: plumery.F(plumery.PartyLoanApplicationNewParamsLoanApplicationTypeRetail),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", loanApplication.LoanApplicationID)\n}\n',
      },
      cli: {
        method: 'loan-applications create',
        example:
          "plumery parties:loan-applications create \\\n  --session 'My Session' \\\n  --party-id 36a22460-ebc8-4ffe-a213-1683c5a420c5 \\\n  --loan-application-type RETAIL",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/parties/$PARTY_ID/loan-applications \\\n    -H \'Content-Type: application/json\' \\\n    -H "Cookie: $SESSION" \\\n    -d \'{\n          "loanApplicationType": "RETAIL"\n        }\'',
      },
    },
  },
  {
    name: 'previewSchedule',
    endpoint: '/api/v1/parties/{partyId}/loan-applications/{loanApplicationId}:preview-schedule',
    httpMethod: 'post',
    summary: 'Generate A Loan Schedule Preview For An Existing Party',
    description: 'Generate a schedule preview for a loan application for an existing party.',
    stainlessPath: '(resource) parties.loan-applications > (method) previewSchedule',
    qualified: 'client.parties.loanApplications.previewSchedule',
    params: [
      'partyId: string;',
      'loanApplicationId: string;',
      "loanDetails: { firstRepaymentDate: string; loanAmount: { amount: number; currency: string; }; loanDuration: number; repaymentInterval?: number; repaymentUnit?: 'MONTHS'; };",
      'plmr-user-action?: boolean;',
      'X-Request-ID?: string;',
    ],
    response:
      '{ installments?: { feeAmount?: { amount: number; currency: string; }; feeTaxAmount?: { amount: number; currency: string; }; interestAmount?: { amount: number; currency: string; }; interestTaxAmount?: { amount: number; currency: string; }; number?: number; principalAmount?: { amount: number; currency: string; }; repaymentDate?: string; }[]; }',
    markdown:
      "## previewSchedule\n\n`client.parties.loanApplications.previewSchedule(partyId: string, loanApplicationId: string, loanDetails: { firstRepaymentDate: string; loanAmount: { amount: number; currency: string; }; loanDuration: number; repaymentInterval?: number; repaymentUnit?: 'MONTHS'; }, plmr-user-action?: boolean, X-Request-ID?: string): { installments?: object[]; }`\n\n**post** `/api/v1/parties/{partyId}/loan-applications/{loanApplicationId}:preview-schedule`\n\nGenerate a schedule preview for a loan application for an existing party.\n\n### Parameters\n\n- `partyId: string`\n\n- `loanApplicationId: string`\n\n- `loanDetails: { firstRepaymentDate: string; loanAmount: { amount: number; currency: string; }; loanDuration: number; repaymentInterval?: number; repaymentUnit?: 'MONTHS'; }`\n  - `firstRepaymentDate: string`\n  - `loanAmount: { amount: number; currency: string; }`\n  - `loanDuration: number`\n  - `repaymentInterval?: number`\n  - `repaymentUnit?: 'MONTHS'`\n\n- `plmr-user-action?: boolean`\n\n- `X-Request-ID?: string`\n\n### Returns\n\n- `{ installments?: { feeAmount?: { amount: number; currency: string; }; feeTaxAmount?: { amount: number; currency: string; }; interestAmount?: { amount: number; currency: string; }; interestTaxAmount?: { amount: number; currency: string; }; number?: number; principalAmount?: { amount: number; currency: string; }; repaymentDate?: string; }[]; }`\n\n  - `installments?: { feeAmount?: { amount: number; currency: string; }; feeTaxAmount?: { amount: number; currency: string; }; interestAmount?: { amount: number; currency: string; }; interestTaxAmount?: { amount: number; currency: string; }; number?: number; principalAmount?: { amount: number; currency: string; }; repaymentDate?: string; }[]`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.parties.loanApplications.previewSchedule('36a22460-ebc8-4ffe-a213-1683c5a420c5', {\n  partyId: '36a22460-ebc8-4ffe-a213-1683c5a420c5',\n  loanDetails: {\n  firstRepaymentDate: 'firstRepaymentDate',\n  loanAmount: { amount: 0, currency: 'EUR' },\n  loanDuration: 0,\n},\n});\n\nconsole.log(response);\n```",
    perLanguage: {
      typescript: {
        method: 'client.parties.loanApplications.previewSchedule',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nconst response = await client.parties.loanApplications.previewSchedule(\n  '36a22460-ebc8-4ffe-a213-1683c5a420c5',\n  {\n    partyId: '36a22460-ebc8-4ffe-a213-1683c5a420c5',\n    loanDetails: {\n      firstRepaymentDate: 'firstRepaymentDate',\n      loanAmount: { amount: 0, currency: 'EUR' },\n      loanDuration: 0,\n    },\n  },\n);\n\nconsole.log(response.installments);",
      },
      python: {
        method: 'parties.loan_applications.preview_schedule',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nresponse = client.parties.loan_applications.preview_schedule(\n    loan_application_id="36a22460-ebc8-4ffe-a213-1683c5a420c5",\n    party_id="36a22460-ebc8-4ffe-a213-1683c5a420c5",\n    loan_details={\n        "first_repayment_date": "firstRepaymentDate",\n        "loan_amount": {\n            "amount": 0,\n            "currency": "EUR",\n        },\n        "loan_duration": 0,\n    },\n)\nprint(response.installments)',
      },
      java: {
        method: 'parties().loanApplications().previewSchedule',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.parties.loanapplications.LoanApplicationPreviewScheduleParams;\nimport com.plumery.api.models.parties.loanapplications.LoanApplicationPreviewScheduleResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        LoanApplicationPreviewScheduleParams params = LoanApplicationPreviewScheduleParams.builder()\n            .partyId("36a22460-ebc8-4ffe-a213-1683c5a420c5")\n            .loanApplicationId("36a22460-ebc8-4ffe-a213-1683c5a420c5")\n            .loanDetails(LoanApplicationPreviewScheduleParams.LoanDetails.builder()\n                .firstRepaymentDate("firstRepaymentDate")\n                .loanAmount(LoanApplicationPreviewScheduleParams.LoanDetails.LoanAmount.builder()\n                    .amount(0.0)\n                    .currency("EUR")\n                    .build())\n                .loanDuration(0)\n                .build())\n            .build();\n        LoanApplicationPreviewScheduleResponse response = client.parties().loanApplications().previewSchedule(params);\n    }\n}',
      },
      kotlin: {
        method: 'parties().loanApplications().previewSchedule',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.parties.loanapplications.LoanApplicationPreviewScheduleParams\nimport com.plumery.api.models.parties.loanapplications.LoanApplicationPreviewScheduleResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: LoanApplicationPreviewScheduleParams = LoanApplicationPreviewScheduleParams.builder()\n        .partyId("36a22460-ebc8-4ffe-a213-1683c5a420c5")\n        .loanApplicationId("36a22460-ebc8-4ffe-a213-1683c5a420c5")\n        .loanDetails(LoanApplicationPreviewScheduleParams.LoanDetails.builder()\n            .firstRepaymentDate("firstRepaymentDate")\n            .loanAmount(LoanApplicationPreviewScheduleParams.LoanDetails.LoanAmount.builder()\n                .amount(0.0)\n                .currency("EUR")\n                .build())\n            .loanDuration(0)\n            .build())\n        .build()\n    val response: LoanApplicationPreviewScheduleResponse = client.parties().loanApplications().previewSchedule(params)\n}',
      },
      go: {
        method: 'client.Parties.LoanApplications.PreviewSchedule',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tresponse, err := client.Parties.LoanApplications.PreviewSchedule(\n\t\tcontext.TODO(),\n\t\t"36a22460-ebc8-4ffe-a213-1683c5a420c5",\n\t\t"36a22460-ebc8-4ffe-a213-1683c5a420c5",\n\t\tplumery.PartyLoanApplicationPreviewScheduleParams{\n\t\t\tLoanDetails: plumery.F(plumery.PartyLoanApplicationPreviewScheduleParamsLoanDetails{\n\t\t\t\tFirstRepaymentDate: plumery.F("firstRepaymentDate"),\n\t\t\t\tLoanAmount: plumery.F(plumery.PartyLoanApplicationPreviewScheduleParamsLoanDetailsLoanAmount{\n\t\t\t\t\tAmount:   plumery.F(0.000000),\n\t\t\t\t\tCurrency: plumery.F("EUR"),\n\t\t\t\t}),\n\t\t\t\tLoanDuration: plumery.F(int64(0)),\n\t\t\t}),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.Installments)\n}\n',
      },
      cli: {
        method: 'loan-applications previewSchedule',
        example:
          "plumery parties:loan-applications preview-schedule \\\n  --session 'My Session' \\\n  --party-id 36a22460-ebc8-4ffe-a213-1683c5a420c5 \\\n  --loan-application-id 36a22460-ebc8-4ffe-a213-1683c5a420c5 \\\n  --loan-details '{firstRepaymentDate: firstRepaymentDate, loanAmount: {amount: 0, currency: EUR}, loanDuration: 0}'",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/parties/$PARTY_ID/loan-applications/$LOAN_APPLICATION_ID:preview-schedule \\\n    -H \'Content-Type: application/json\' \\\n    -H "Cookie: $SESSION" \\\n    -d \'{\n          "loanDetails": {\n            "firstRepaymentDate": "firstRepaymentDate",\n            "loanAmount": {\n              "amount": 0,\n              "currency": "EUR"\n            },\n            "loanDuration": 0\n          }\n        }\'',
      },
    },
  },
  {
    name: 'submitApplicationDetails',
    endpoint: '/api/v1/parties/{partyId}/loan-applications/{loanApplicationId}:submit-application-details',
    httpMethod: 'post',
    summary: 'Submit Application Details For An Existing Party',
    description: 'Triggers the application details submission for an existing party.',
    stainlessPath: '(resource) parties.loan-applications > (method) submitApplicationDetails',
    qualified: 'client.parties.loanApplications.submitApplicationDetails',
    params: [
      'partyId: string;',
      'loanApplicationId: string;',
      "employmentDetails: { employmentStatus: 'EMPLOYED' | 'HOMEMAKER' | 'UNEMPLOYED' | 'RETIRED' | 'SELF_EMPLOYED'; incomeFrequency: 'MONTHLY' | 'FORTNIGHTLY' | 'WEEKLY' | 'UNDEFINED'; monthlyIncome: { amount: number; currency: string; }; occupation: string; originOfResources: string; };",
      "housingDetails: { housingSituation: 'RENTER' | 'HOMEOWNER_WITH_MORTGAGE' | 'HOMEOWNER_WITHOUT_MORTGAGE'; monthlyHousingCost: { amount: number; currency: string; }; yearsLivingAtHome: number; landlinePhoneNumber?: string; };",
      'personalDetails: { creditDestination: string; everDivorced: boolean; financialDependents: number; maritalStatus: string; monthlyExpenses: { amount: number; currency: string; }; signatureSerialNumber?: string; };',
      'plmr-user-action?: boolean;',
      'X-Request-ID?: string;',
    ],
    markdown:
      "## submitApplicationDetails\n\n`client.parties.loanApplications.submitApplicationDetails(partyId: string, loanApplicationId: string, employmentDetails: { employmentStatus: 'EMPLOYED' | 'HOMEMAKER' | 'UNEMPLOYED' | 'RETIRED' | 'SELF_EMPLOYED'; incomeFrequency: 'MONTHLY' | 'FORTNIGHTLY' | 'WEEKLY' | 'UNDEFINED'; monthlyIncome: { amount: number; currency: string; }; occupation: string; originOfResources: string; }, housingDetails: { housingSituation: 'RENTER' | 'HOMEOWNER_WITH_MORTGAGE' | 'HOMEOWNER_WITHOUT_MORTGAGE'; monthlyHousingCost: { amount: number; currency: string; }; yearsLivingAtHome: number; landlinePhoneNumber?: string; }, personalDetails: { creditDestination: string; everDivorced: boolean; financialDependents: number; maritalStatus: string; monthlyExpenses: { amount: number; currency: string; }; signatureSerialNumber?: string; }, plmr-user-action?: boolean, X-Request-ID?: string): void`\n\n**post** `/api/v1/parties/{partyId}/loan-applications/{loanApplicationId}:submit-application-details`\n\nTriggers the application details submission for an existing party.\n\n### Parameters\n\n- `partyId: string`\n\n- `loanApplicationId: string`\n\n- `employmentDetails: { employmentStatus: 'EMPLOYED' | 'HOMEMAKER' | 'UNEMPLOYED' | 'RETIRED' | 'SELF_EMPLOYED'; incomeFrequency: 'MONTHLY' | 'FORTNIGHTLY' | 'WEEKLY' | 'UNDEFINED'; monthlyIncome: { amount: number; currency: string; }; occupation: string; originOfResources: string; }`\n  - `employmentStatus: 'EMPLOYED' | 'HOMEMAKER' | 'UNEMPLOYED' | 'RETIRED' | 'SELF_EMPLOYED'`\n  - `incomeFrequency: 'MONTHLY' | 'FORTNIGHTLY' | 'WEEKLY' | 'UNDEFINED'`\n  - `monthlyIncome: { amount: number; currency: string; }`\n  - `occupation: string`\n  - `originOfResources: string`\n\n- `housingDetails: { housingSituation: 'RENTER' | 'HOMEOWNER_WITH_MORTGAGE' | 'HOMEOWNER_WITHOUT_MORTGAGE'; monthlyHousingCost: { amount: number; currency: string; }; yearsLivingAtHome: number; landlinePhoneNumber?: string; }`\n  - `housingSituation: 'RENTER' | 'HOMEOWNER_WITH_MORTGAGE' | 'HOMEOWNER_WITHOUT_MORTGAGE'`\n  - `monthlyHousingCost: { amount: number; currency: string; }`\n  - `yearsLivingAtHome: number`\n  - `landlinePhoneNumber?: string`\n\n- `personalDetails: { creditDestination: string; everDivorced: boolean; financialDependents: number; maritalStatus: string; monthlyExpenses: { amount: number; currency: string; }; signatureSerialNumber?: string; }`\n  - `creditDestination: string`\n  - `everDivorced: boolean`\n  - `financialDependents: number`\n  - `maritalStatus: string`\n  - `monthlyExpenses: { amount: number; currency: string; }`\n  - `signatureSerialNumber?: string`\n\n- `plmr-user-action?: boolean`\n\n- `X-Request-ID?: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nawait client.parties.loanApplications.submitApplicationDetails('36a22460-ebc8-4ffe-a213-1683c5a420c5', {\n  partyId: '36a22460-ebc8-4ffe-a213-1683c5a420c5',\n  employmentDetails: {\n  employmentStatus: 'EMPLOYED',\n  incomeFrequency: 'MONTHLY',\n  monthlyIncome: { amount: 0, currency: 'EUR' },\n  occupation: 'Developer',\n  originOfResources: 'Salary',\n},\n  housingDetails: {\n  housingSituation: 'RENTER',\n  monthlyHousingCost: { amount: 0, currency: 'EUR' },\n  yearsLivingAtHome: 0,\n},\n  personalDetails: {\n  creditDestination: 'Personal',\n  everDivorced: true,\n  financialDependents: 0,\n  maritalStatus: 'Married',\n  monthlyExpenses: { amount: 0, currency: 'EUR' },\n},\n})\n```",
    perLanguage: {
      typescript: {
        method: 'client.parties.loanApplications.submitApplicationDetails',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nawait client.parties.loanApplications.submitApplicationDetails(\n  '36a22460-ebc8-4ffe-a213-1683c5a420c5',\n  {\n    partyId: '36a22460-ebc8-4ffe-a213-1683c5a420c5',\n    employmentDetails: {\n      employmentStatus: 'EMPLOYED',\n      incomeFrequency: 'MONTHLY',\n      monthlyIncome: { amount: 0, currency: 'EUR' },\n      occupation: 'Developer',\n      originOfResources: 'Salary',\n    },\n    housingDetails: {\n      housingSituation: 'RENTER',\n      monthlyHousingCost: { amount: 0, currency: 'EUR' },\n      yearsLivingAtHome: 0,\n    },\n    personalDetails: {\n      creditDestination: 'Personal',\n      everDivorced: true,\n      financialDependents: 0,\n      maritalStatus: 'Married',\n      monthlyExpenses: { amount: 0, currency: 'EUR' },\n    },\n  },\n);",
      },
      python: {
        method: 'parties.loan_applications.submit_application_details',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nclient.parties.loan_applications.submit_application_details(\n    loan_application_id="36a22460-ebc8-4ffe-a213-1683c5a420c5",\n    party_id="36a22460-ebc8-4ffe-a213-1683c5a420c5",\n    employment_details={\n        "employment_status": "EMPLOYED",\n        "income_frequency": "MONTHLY",\n        "monthly_income": {\n            "amount": 0,\n            "currency": "EUR",\n        },\n        "occupation": "Developer",\n        "origin_of_resources": "Salary",\n    },\n    housing_details={\n        "housing_situation": "RENTER",\n        "monthly_housing_cost": {\n            "amount": 0,\n            "currency": "EUR",\n        },\n        "years_living_at_home": 0,\n    },\n    personal_details={\n        "credit_destination": "Personal",\n        "ever_divorced": True,\n        "financial_dependents": 0,\n        "marital_status": "Married",\n        "monthly_expenses": {\n            "amount": 0,\n            "currency": "EUR",\n        },\n    },\n)',
      },
      java: {
        method: 'parties().loanApplications().submitApplicationDetails',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.parties.loanapplications.LoanApplicationSubmitApplicationDetailsParams;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        LoanApplicationSubmitApplicationDetailsParams params = LoanApplicationSubmitApplicationDetailsParams.builder()\n            .partyId("36a22460-ebc8-4ffe-a213-1683c5a420c5")\n            .loanApplicationId("36a22460-ebc8-4ffe-a213-1683c5a420c5")\n            .employmentDetails(LoanApplicationSubmitApplicationDetailsParams.EmploymentDetails.builder()\n                .employmentStatus(LoanApplicationSubmitApplicationDetailsParams.EmploymentDetails.EmploymentStatus.EMPLOYED)\n                .incomeFrequency(LoanApplicationSubmitApplicationDetailsParams.EmploymentDetails.IncomeFrequency.MONTHLY)\n                .monthlyIncome(LoanApplicationSubmitApplicationDetailsParams.EmploymentDetails.MonthlyIncome.builder()\n                    .amount(0.0)\n                    .currency("EUR")\n                    .build())\n                .occupation("Developer")\n                .originOfResources("Salary")\n                .build())\n            .housingDetails(LoanApplicationSubmitApplicationDetailsParams.HousingDetails.builder()\n                .housingSituation(LoanApplicationSubmitApplicationDetailsParams.HousingDetails.HousingSituation.RENTER)\n                .monthlyHousingCost(LoanApplicationSubmitApplicationDetailsParams.HousingDetails.MonthlyHousingCost.builder()\n                    .amount(0.0)\n                    .currency("EUR")\n                    .build())\n                .yearsLivingAtHome(0)\n                .build())\n            .personalDetails(LoanApplicationSubmitApplicationDetailsParams.PersonalDetails.builder()\n                .creditDestination("Personal")\n                .everDivorced(true)\n                .financialDependents(0)\n                .maritalStatus("Married")\n                .monthlyExpenses(LoanApplicationSubmitApplicationDetailsParams.PersonalDetails.MonthlyExpenses.builder()\n                    .amount(0.0)\n                    .currency("EUR")\n                    .build())\n                .build())\n            .build();\n        client.parties().loanApplications().submitApplicationDetails(params);\n    }\n}',
      },
      kotlin: {
        method: 'parties().loanApplications().submitApplicationDetails',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.parties.loanapplications.LoanApplicationSubmitApplicationDetailsParams\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: LoanApplicationSubmitApplicationDetailsParams = LoanApplicationSubmitApplicationDetailsParams.builder()\n        .partyId("36a22460-ebc8-4ffe-a213-1683c5a420c5")\n        .loanApplicationId("36a22460-ebc8-4ffe-a213-1683c5a420c5")\n        .employmentDetails(LoanApplicationSubmitApplicationDetailsParams.EmploymentDetails.builder()\n            .employmentStatus(LoanApplicationSubmitApplicationDetailsParams.EmploymentDetails.EmploymentStatus.EMPLOYED)\n            .incomeFrequency(LoanApplicationSubmitApplicationDetailsParams.EmploymentDetails.IncomeFrequency.MONTHLY)\n            .monthlyIncome(LoanApplicationSubmitApplicationDetailsParams.EmploymentDetails.MonthlyIncome.builder()\n                .amount(0.0)\n                .currency("EUR")\n                .build())\n            .occupation("Developer")\n            .originOfResources("Salary")\n            .build())\n        .housingDetails(LoanApplicationSubmitApplicationDetailsParams.HousingDetails.builder()\n            .housingSituation(LoanApplicationSubmitApplicationDetailsParams.HousingDetails.HousingSituation.RENTER)\n            .monthlyHousingCost(LoanApplicationSubmitApplicationDetailsParams.HousingDetails.MonthlyHousingCost.builder()\n                .amount(0.0)\n                .currency("EUR")\n                .build())\n            .yearsLivingAtHome(0)\n            .build())\n        .personalDetails(LoanApplicationSubmitApplicationDetailsParams.PersonalDetails.builder()\n            .creditDestination("Personal")\n            .everDivorced(true)\n            .financialDependents(0)\n            .maritalStatus("Married")\n            .monthlyExpenses(LoanApplicationSubmitApplicationDetailsParams.PersonalDetails.MonthlyExpenses.builder()\n                .amount(0.0)\n                .currency("EUR")\n                .build())\n            .build())\n        .build()\n    client.parties().loanApplications().submitApplicationDetails(params)\n}',
      },
      go: {
        method: 'client.Parties.LoanApplications.SubmitApplicationDetails',
        example:
          'package main\n\nimport (\n\t"context"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\terr := client.Parties.LoanApplications.SubmitApplicationDetails(\n\t\tcontext.TODO(),\n\t\t"36a22460-ebc8-4ffe-a213-1683c5a420c5",\n\t\t"36a22460-ebc8-4ffe-a213-1683c5a420c5",\n\t\tplumery.PartyLoanApplicationSubmitApplicationDetailsParams{\n\t\t\tEmploymentDetails: plumery.F(plumery.PartyLoanApplicationSubmitApplicationDetailsParamsEmploymentDetails{\n\t\t\t\tEmploymentStatus: plumery.F(plumery.PartyLoanApplicationSubmitApplicationDetailsParamsEmploymentDetailsEmploymentStatusEmployed),\n\t\t\t\tIncomeFrequency:  plumery.F(plumery.PartyLoanApplicationSubmitApplicationDetailsParamsEmploymentDetailsIncomeFrequencyMonthly),\n\t\t\t\tMonthlyIncome: plumery.F(plumery.PartyLoanApplicationSubmitApplicationDetailsParamsEmploymentDetailsMonthlyIncome{\n\t\t\t\t\tAmount:   plumery.F(0.000000),\n\t\t\t\t\tCurrency: plumery.F("EUR"),\n\t\t\t\t}),\n\t\t\t\tOccupation:        plumery.F("Developer"),\n\t\t\t\tOriginOfResources: plumery.F("Salary"),\n\t\t\t}),\n\t\t\tHousingDetails: plumery.F(plumery.PartyLoanApplicationSubmitApplicationDetailsParamsHousingDetails{\n\t\t\t\tHousingSituation: plumery.F(plumery.PartyLoanApplicationSubmitApplicationDetailsParamsHousingDetailsHousingSituationRenter),\n\t\t\t\tMonthlyHousingCost: plumery.F(plumery.PartyLoanApplicationSubmitApplicationDetailsParamsHousingDetailsMonthlyHousingCost{\n\t\t\t\t\tAmount:   plumery.F(0.000000),\n\t\t\t\t\tCurrency: plumery.F("EUR"),\n\t\t\t\t}),\n\t\t\t\tYearsLivingAtHome: plumery.F(int64(0)),\n\t\t\t}),\n\t\t\tPersonalDetails: plumery.F(plumery.PartyLoanApplicationSubmitApplicationDetailsParamsPersonalDetails{\n\t\t\t\tCreditDestination:   plumery.F("Personal"),\n\t\t\t\tEverDivorced:        plumery.F(true),\n\t\t\t\tFinancialDependents: plumery.F(int64(0)),\n\t\t\t\tMaritalStatus:       plumery.F("Married"),\n\t\t\t\tMonthlyExpenses: plumery.F(plumery.PartyLoanApplicationSubmitApplicationDetailsParamsPersonalDetailsMonthlyExpenses{\n\t\t\t\t\tAmount:   plumery.F(0.000000),\n\t\t\t\t\tCurrency: plumery.F("EUR"),\n\t\t\t\t}),\n\t\t\t}),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
      },
      cli: {
        method: 'loan-applications submitApplicationDetails',
        example:
          "plumery parties:loan-applications submit-application-details \\\n  --session 'My Session' \\\n  --party-id 36a22460-ebc8-4ffe-a213-1683c5a420c5 \\\n  --loan-application-id 36a22460-ebc8-4ffe-a213-1683c5a420c5 \\\n  --employment-details '{employmentStatus: EMPLOYED, incomeFrequency: MONTHLY, monthlyIncome: {amount: 0, currency: EUR}, occupation: Developer, originOfResources: Salary}' \\\n  --housing-details '{housingSituation: RENTER, monthlyHousingCost: {amount: 0, currency: EUR}, yearsLivingAtHome: 0}' \\\n  --personal-details '{creditDestination: Personal, everDivorced: true, financialDependents: 0, maritalStatus: Married, monthlyExpenses: {amount: 0, currency: EUR}}'",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/parties/$PARTY_ID/loan-applications/$LOAN_APPLICATION_ID:submit-application-details \\\n    -H \'Content-Type: application/json\' \\\n    -H "Cookie: $SESSION" \\\n    -d \'{\n          "employmentDetails": {\n            "employmentStatus": "EMPLOYED",\n            "incomeFrequency": "MONTHLY",\n            "monthlyIncome": {\n              "amount": 0,\n              "currency": "EUR"\n            },\n            "occupation": "Developer",\n            "originOfResources": "Salary"\n          },\n          "housingDetails": {\n            "housingSituation": "RENTER",\n            "monthlyHousingCost": {\n              "amount": 0,\n              "currency": "EUR"\n            },\n            "yearsLivingAtHome": 0\n          },\n          "personalDetails": {\n            "creditDestination": "Personal",\n            "everDivorced": true,\n            "financialDependents": 0,\n            "maritalStatus": "Married",\n            "monthlyExpenses": {\n              "amount": 0,\n              "currency": "EUR"\n            }\n          }\n        }\'',
      },
    },
  },
  {
    name: 'submitBusinessApplicationDetails',
    endpoint:
      '/api/v1/parties/{partyId}/loan-applications/{loanApplicationId}:submit-business-application-details',
    httpMethod: 'post',
    summary: 'Submit Business Loan Application Details For An Existing Party',
    description: 'Triggers the business application details submission for an existing party.',
    stainlessPath: '(resource) parties.loan-applications > (method) submitBusinessApplicationDetails',
    qualified: 'client.parties.loanApplications.submitBusinessApplicationDetails',
    params: [
      'partyId: string;',
      'loanApplicationId: string;',
      'businessDetails: { annualRevenue: { amount: number; currency: string; }; businessType: string; numberOfEmployees: number; yearsInBusiness: number; };',
      'financialInformation: { monthlyExpenses: { amount: number; currency: string; }; monthlyRevenue: { amount: number; currency: string; }; netMonthlyProfit: { amount: number; currency: string; }; };',
      'purposeDetails: string;',
      'plmr-user-action?: boolean;',
      'X-Request-ID?: string;',
    ],
    markdown:
      "## submitBusinessApplicationDetails\n\n`client.parties.loanApplications.submitBusinessApplicationDetails(partyId: string, loanApplicationId: string, businessDetails: { annualRevenue: { amount: number; currency: string; }; businessType: string; numberOfEmployees: number; yearsInBusiness: number; }, financialInformation: { monthlyExpenses: { amount: number; currency: string; }; monthlyRevenue: { amount: number; currency: string; }; netMonthlyProfit: { amount: number; currency: string; }; }, purposeDetails: string, plmr-user-action?: boolean, X-Request-ID?: string): void`\n\n**post** `/api/v1/parties/{partyId}/loan-applications/{loanApplicationId}:submit-business-application-details`\n\nTriggers the business application details submission for an existing party.\n\n### Parameters\n\n- `partyId: string`\n\n- `loanApplicationId: string`\n\n- `businessDetails: { annualRevenue: { amount: number; currency: string; }; businessType: string; numberOfEmployees: number; yearsInBusiness: number; }`\n  - `annualRevenue: { amount: number; currency: string; }`\n  - `businessType: string`\n  - `numberOfEmployees: number`\n  - `yearsInBusiness: number`\n    Only values between 0 and 50 are allowed\n\n- `financialInformation: { monthlyExpenses: { amount: number; currency: string; }; monthlyRevenue: { amount: number; currency: string; }; netMonthlyProfit: { amount: number; currency: string; }; }`\n  - `monthlyExpenses: { amount: number; currency: string; }`\n  - `monthlyRevenue: { amount: number; currency: string; }`\n  - `netMonthlyProfit: { amount: number; currency: string; }`\n\n- `purposeDetails: string`\n\n- `plmr-user-action?: boolean`\n\n- `X-Request-ID?: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nawait client.parties.loanApplications.submitBusinessApplicationDetails('36a22460-ebc8-4ffe-a213-1683c5a420c5', {\n  partyId: '36a22460-ebc8-4ffe-a213-1683c5a420c5',\n  businessDetails: {\n  annualRevenue: { amount: 0, currency: 'EUR' },\n  businessType: 'RETAIL',\n  numberOfEmployees: 0,\n  yearsInBusiness: 0,\n},\n  financialInformation: {\n  monthlyExpenses: { amount: 0, currency: 'EUR' },\n  monthlyRevenue: { amount: 0, currency: 'EUR' },\n  netMonthlyProfit: { amount: 0, currency: 'EUR' },\n},\n  purposeDetails: 'purposeDetails',\n})\n```",
    perLanguage: {
      typescript: {
        method: 'client.parties.loanApplications.submitBusinessApplicationDetails',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nawait client.parties.loanApplications.submitBusinessApplicationDetails(\n  '36a22460-ebc8-4ffe-a213-1683c5a420c5',\n  {\n    partyId: '36a22460-ebc8-4ffe-a213-1683c5a420c5',\n    businessDetails: {\n      annualRevenue: { amount: 0, currency: 'EUR' },\n      businessType: 'RETAIL',\n      numberOfEmployees: 0,\n      yearsInBusiness: 0,\n    },\n    financialInformation: {\n      monthlyExpenses: { amount: 0, currency: 'EUR' },\n      monthlyRevenue: { amount: 0, currency: 'EUR' },\n      netMonthlyProfit: { amount: 0, currency: 'EUR' },\n    },\n    purposeDetails: 'purposeDetails',\n  },\n);",
      },
      python: {
        method: 'parties.loan_applications.submit_business_application_details',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nclient.parties.loan_applications.submit_business_application_details(\n    loan_application_id="36a22460-ebc8-4ffe-a213-1683c5a420c5",\n    party_id="36a22460-ebc8-4ffe-a213-1683c5a420c5",\n    business_details={\n        "annual_revenue": {\n            "amount": 0,\n            "currency": "EUR",\n        },\n        "business_type": "RETAIL",\n        "number_of_employees": 0,\n        "years_in_business": 0,\n    },\n    financial_information={\n        "monthly_expenses": {\n            "amount": 0,\n            "currency": "EUR",\n        },\n        "monthly_revenue": {\n            "amount": 0,\n            "currency": "EUR",\n        },\n        "net_monthly_profit": {\n            "amount": 0,\n            "currency": "EUR",\n        },\n    },\n    purpose_details="purposeDetails",\n)',
      },
      java: {
        method: 'parties().loanApplications().submitBusinessApplicationDetails',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.parties.loanapplications.LoanApplicationSubmitBusinessApplicationDetailsParams;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        LoanApplicationSubmitBusinessApplicationDetailsParams params = LoanApplicationSubmitBusinessApplicationDetailsParams.builder()\n            .partyId("36a22460-ebc8-4ffe-a213-1683c5a420c5")\n            .loanApplicationId("36a22460-ebc8-4ffe-a213-1683c5a420c5")\n            .businessDetails(LoanApplicationSubmitBusinessApplicationDetailsParams.BusinessDetails.builder()\n                .annualRevenue(LoanApplicationSubmitBusinessApplicationDetailsParams.BusinessDetails.AnnualRevenue.builder()\n                    .amount(0.0)\n                    .currency("EUR")\n                    .build())\n                .businessType(LoanApplicationSubmitBusinessApplicationDetailsParams.BusinessDetails.BusinessType.RETAIL)\n                .numberOfEmployees(0L)\n                .yearsInBusiness(0L)\n                .build())\n            .financialInformation(LoanApplicationSubmitBusinessApplicationDetailsParams.FinancialInformation.builder()\n                .monthlyExpenses(LoanApplicationSubmitBusinessApplicationDetailsParams.FinancialInformation.MonthlyExpenses.builder()\n                    .amount(0.0)\n                    .currency("EUR")\n                    .build())\n                .monthlyRevenue(LoanApplicationSubmitBusinessApplicationDetailsParams.FinancialInformation.MonthlyRevenue.builder()\n                    .amount(0.0)\n                    .currency("EUR")\n                    .build())\n                .netMonthlyProfit(LoanApplicationSubmitBusinessApplicationDetailsParams.FinancialInformation.NetMonthlyProfit.builder()\n                    .amount(0.0)\n                    .currency("EUR")\n                    .build())\n                .build())\n            .purposeDetails("purposeDetails")\n            .build();\n        client.parties().loanApplications().submitBusinessApplicationDetails(params);\n    }\n}',
      },
      kotlin: {
        method: 'parties().loanApplications().submitBusinessApplicationDetails',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.parties.loanapplications.LoanApplicationSubmitBusinessApplicationDetailsParams\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: LoanApplicationSubmitBusinessApplicationDetailsParams = LoanApplicationSubmitBusinessApplicationDetailsParams.builder()\n        .partyId("36a22460-ebc8-4ffe-a213-1683c5a420c5")\n        .loanApplicationId("36a22460-ebc8-4ffe-a213-1683c5a420c5")\n        .businessDetails(LoanApplicationSubmitBusinessApplicationDetailsParams.BusinessDetails.builder()\n            .annualRevenue(LoanApplicationSubmitBusinessApplicationDetailsParams.BusinessDetails.AnnualRevenue.builder()\n                .amount(0.0)\n                .currency("EUR")\n                .build())\n            .businessType(LoanApplicationSubmitBusinessApplicationDetailsParams.BusinessDetails.BusinessType.RETAIL)\n            .numberOfEmployees(0L)\n            .yearsInBusiness(0L)\n            .build())\n        .financialInformation(LoanApplicationSubmitBusinessApplicationDetailsParams.FinancialInformation.builder()\n            .monthlyExpenses(LoanApplicationSubmitBusinessApplicationDetailsParams.FinancialInformation.MonthlyExpenses.builder()\n                .amount(0.0)\n                .currency("EUR")\n                .build())\n            .monthlyRevenue(LoanApplicationSubmitBusinessApplicationDetailsParams.FinancialInformation.MonthlyRevenue.builder()\n                .amount(0.0)\n                .currency("EUR")\n                .build())\n            .netMonthlyProfit(LoanApplicationSubmitBusinessApplicationDetailsParams.FinancialInformation.NetMonthlyProfit.builder()\n                .amount(0.0)\n                .currency("EUR")\n                .build())\n            .build())\n        .purposeDetails("purposeDetails")\n        .build()\n    client.parties().loanApplications().submitBusinessApplicationDetails(params)\n}',
      },
      go: {
        method: 'client.Parties.LoanApplications.SubmitBusinessApplicationDetails',
        example:
          'package main\n\nimport (\n\t"context"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\terr := client.Parties.LoanApplications.SubmitBusinessApplicationDetails(\n\t\tcontext.TODO(),\n\t\t"36a22460-ebc8-4ffe-a213-1683c5a420c5",\n\t\t"36a22460-ebc8-4ffe-a213-1683c5a420c5",\n\t\tplumery.PartyLoanApplicationSubmitBusinessApplicationDetailsParams{\n\t\t\tBusinessDetails: plumery.F(plumery.PartyLoanApplicationSubmitBusinessApplicationDetailsParamsBusinessDetails{\n\t\t\t\tAnnualRevenue: plumery.F(plumery.PartyLoanApplicationSubmitBusinessApplicationDetailsParamsBusinessDetailsAnnualRevenue{\n\t\t\t\t\tAmount:   plumery.F(0.000000),\n\t\t\t\t\tCurrency: plumery.F("EUR"),\n\t\t\t\t}),\n\t\t\t\tBusinessType:      plumery.F(plumery.PartyLoanApplicationSubmitBusinessApplicationDetailsParamsBusinessDetailsBusinessTypeRetail),\n\t\t\t\tNumberOfEmployees: plumery.F(int64(0)),\n\t\t\t\tYearsInBusiness:   plumery.F(int64(0)),\n\t\t\t}),\n\t\t\tFinancialInformation: plumery.F(plumery.PartyLoanApplicationSubmitBusinessApplicationDetailsParamsFinancialInformation{\n\t\t\t\tMonthlyExpenses: plumery.F(plumery.PartyLoanApplicationSubmitBusinessApplicationDetailsParamsFinancialInformationMonthlyExpenses{\n\t\t\t\t\tAmount:   plumery.F(0.000000),\n\t\t\t\t\tCurrency: plumery.F("EUR"),\n\t\t\t\t}),\n\t\t\t\tMonthlyRevenue: plumery.F(plumery.PartyLoanApplicationSubmitBusinessApplicationDetailsParamsFinancialInformationMonthlyRevenue{\n\t\t\t\t\tAmount:   plumery.F(0.000000),\n\t\t\t\t\tCurrency: plumery.F("EUR"),\n\t\t\t\t}),\n\t\t\t\tNetMonthlyProfit: plumery.F(plumery.PartyLoanApplicationSubmitBusinessApplicationDetailsParamsFinancialInformationNetMonthlyProfit{\n\t\t\t\t\tAmount:   plumery.F(0.000000),\n\t\t\t\t\tCurrency: plumery.F("EUR"),\n\t\t\t\t}),\n\t\t\t}),\n\t\t\tPurposeDetails: plumery.F("purposeDetails"),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
      },
      cli: {
        method: 'loan-applications submitBusinessApplicationDetails',
        example:
          "plumery parties:loan-applications submit-business-application-details \\\n  --session 'My Session' \\\n  --party-id 36a22460-ebc8-4ffe-a213-1683c5a420c5 \\\n  --loan-application-id 36a22460-ebc8-4ffe-a213-1683c5a420c5 \\\n  --business-details '{annualRevenue: {amount: 0, currency: EUR}, businessType: RETAIL, numberOfEmployees: 0, yearsInBusiness: 0}' \\\n  --financial-information '{monthlyExpenses: {amount: 0, currency: EUR}, monthlyRevenue: {amount: 0, currency: EUR}, netMonthlyProfit: {amount: 0, currency: EUR}}' \\\n  --purpose-details purposeDetails",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/parties/$PARTY_ID/loan-applications/$LOAN_APPLICATION_ID:submit-business-application-details \\\n    -H \'Content-Type: application/json\' \\\n    -H "Cookie: $SESSION" \\\n    -d \'{\n          "businessDetails": {\n            "annualRevenue": {\n              "amount": 0,\n              "currency": "EUR"\n            },\n            "businessType": "RETAIL",\n            "numberOfEmployees": 0,\n            "yearsInBusiness": 0\n          },\n          "financialInformation": {\n            "monthlyExpenses": {\n              "amount": 0,\n              "currency": "EUR"\n            },\n            "monthlyRevenue": {\n              "amount": 0,\n              "currency": "EUR"\n            },\n            "netMonthlyProfit": {\n              "amount": 0,\n              "currency": "EUR"\n            }\n          },\n          "purposeDetails": "purposeDetails"\n        }\'',
      },
    },
  },
  {
    name: 'submitCollateralDetails',
    endpoint: '/api/v1/parties/{partyId}/loan-applications/{loanApplicationId}:submit-collateral-details',
    httpMethod: 'post',
    summary: 'Submit Collateral Details For An Existing Party',
    description: 'Triggers the collateral details submission for an existing party.',
    stainlessPath: '(resource) parties.loan-applications > (method) submitCollateralDetails',
    qualified: 'client.parties.loanApplications.submitCollateralDetails',
    params: [
      'partyId: string;',
      'loanApplicationId: string;',
      "condition: 'EXCELLENT' | 'GOOD' | 'FAIR';",
      'description: string;',
      "type: 'VEHICLE' | 'PROPERTY' | 'EQUIPMENT';",
      'value: { amount: number; currency: string; };',
      'plmr-user-action?: boolean;',
      'X-Request-ID?: string;',
    ],
    markdown:
      "## submitCollateralDetails\n\n`client.parties.loanApplications.submitCollateralDetails(partyId: string, loanApplicationId: string, condition: 'EXCELLENT' | 'GOOD' | 'FAIR', description: string, type: 'VEHICLE' | 'PROPERTY' | 'EQUIPMENT', value: { amount: number; currency: string; }, plmr-user-action?: boolean, X-Request-ID?: string): void`\n\n**post** `/api/v1/parties/{partyId}/loan-applications/{loanApplicationId}:submit-collateral-details`\n\nTriggers the collateral details submission for an existing party.\n\n### Parameters\n\n- `partyId: string`\n\n- `loanApplicationId: string`\n\n- `condition: 'EXCELLENT' | 'GOOD' | 'FAIR'`\n\n- `description: string`\n\n- `type: 'VEHICLE' | 'PROPERTY' | 'EQUIPMENT'`\n\n- `value: { amount: number; currency: string; }`\n  - `amount: number`\n  - `currency: string`\n\n- `plmr-user-action?: boolean`\n\n- `X-Request-ID?: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nawait client.parties.loanApplications.submitCollateralDetails('36a22460-ebc8-4ffe-a213-1683c5a420c5', {\n  partyId: '36a22460-ebc8-4ffe-a213-1683c5a420c5',\n  condition: 'EXCELLENT',\n  description: 'description',\n  type: 'VEHICLE',\n  value: { amount: 0, currency: 'EUR' },\n})\n```",
    perLanguage: {
      typescript: {
        method: 'client.parties.loanApplications.submitCollateralDetails',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nawait client.parties.loanApplications.submitCollateralDetails(\n  '36a22460-ebc8-4ffe-a213-1683c5a420c5',\n  {\n    partyId: '36a22460-ebc8-4ffe-a213-1683c5a420c5',\n    condition: 'EXCELLENT',\n    description: 'description',\n    type: 'VEHICLE',\n    value: { amount: 0, currency: 'EUR' },\n  },\n);",
      },
      python: {
        method: 'parties.loan_applications.submit_collateral_details',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nclient.parties.loan_applications.submit_collateral_details(\n    loan_application_id="36a22460-ebc8-4ffe-a213-1683c5a420c5",\n    party_id="36a22460-ebc8-4ffe-a213-1683c5a420c5",\n    condition="EXCELLENT",\n    description="description",\n    type="VEHICLE",\n    value={\n        "amount": 0,\n        "currency": "EUR",\n    },\n)',
      },
      java: {
        method: 'parties().loanApplications().submitCollateralDetails',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.parties.loanapplications.LoanApplicationSubmitCollateralDetailsParams;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        LoanApplicationSubmitCollateralDetailsParams params = LoanApplicationSubmitCollateralDetailsParams.builder()\n            .partyId("36a22460-ebc8-4ffe-a213-1683c5a420c5")\n            .loanApplicationId("36a22460-ebc8-4ffe-a213-1683c5a420c5")\n            .condition(LoanApplicationSubmitCollateralDetailsParams.Condition.EXCELLENT)\n            .description("description")\n            .type(LoanApplicationSubmitCollateralDetailsParams.Type.VEHICLE)\n            .value(LoanApplicationSubmitCollateralDetailsParams.Value.builder()\n                .amount(0.0)\n                .currency("EUR")\n                .build())\n            .build();\n        client.parties().loanApplications().submitCollateralDetails(params);\n    }\n}',
      },
      kotlin: {
        method: 'parties().loanApplications().submitCollateralDetails',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.parties.loanapplications.LoanApplicationSubmitCollateralDetailsParams\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: LoanApplicationSubmitCollateralDetailsParams = LoanApplicationSubmitCollateralDetailsParams.builder()\n        .partyId("36a22460-ebc8-4ffe-a213-1683c5a420c5")\n        .loanApplicationId("36a22460-ebc8-4ffe-a213-1683c5a420c5")\n        .condition(LoanApplicationSubmitCollateralDetailsParams.Condition.EXCELLENT)\n        .description("description")\n        .type(LoanApplicationSubmitCollateralDetailsParams.Type.VEHICLE)\n        .value(LoanApplicationSubmitCollateralDetailsParams.Value.builder()\n            .amount(0.0)\n            .currency("EUR")\n            .build())\n        .build()\n    client.parties().loanApplications().submitCollateralDetails(params)\n}',
      },
      go: {
        method: 'client.Parties.LoanApplications.SubmitCollateralDetails',
        example:
          'package main\n\nimport (\n\t"context"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\terr := client.Parties.LoanApplications.SubmitCollateralDetails(\n\t\tcontext.TODO(),\n\t\t"36a22460-ebc8-4ffe-a213-1683c5a420c5",\n\t\t"36a22460-ebc8-4ffe-a213-1683c5a420c5",\n\t\tplumery.PartyLoanApplicationSubmitCollateralDetailsParams{\n\t\t\tCondition:   plumery.F(plumery.PartyLoanApplicationSubmitCollateralDetailsParamsConditionExcellent),\n\t\t\tDescription: plumery.F("description"),\n\t\t\tType:        plumery.F(plumery.PartyLoanApplicationSubmitCollateralDetailsParamsTypeVehicle),\n\t\t\tValue: plumery.F(plumery.PartyLoanApplicationSubmitCollateralDetailsParamsValue{\n\t\t\t\tAmount:   plumery.F(0.000000),\n\t\t\t\tCurrency: plumery.F("EUR"),\n\t\t\t}),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
      },
      cli: {
        method: 'loan-applications submitCollateralDetails',
        example:
          "plumery parties:loan-applications submit-collateral-details \\\n  --session 'My Session' \\\n  --party-id 36a22460-ebc8-4ffe-a213-1683c5a420c5 \\\n  --loan-application-id 36a22460-ebc8-4ffe-a213-1683c5a420c5 \\\n  --condition EXCELLENT \\\n  --description description \\\n  --type VEHICLE \\\n  --value '{amount: 0, currency: EUR}'",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/parties/$PARTY_ID/loan-applications/$LOAN_APPLICATION_ID:submit-collateral-details \\\n    -H \'Content-Type: application/json\' \\\n    -H "Cookie: $SESSION" \\\n    -d \'{\n          "condition": "EXCELLENT",\n          "description": "description",\n          "type": "VEHICLE",\n          "value": {\n            "amount": 0,\n            "currency": "EUR"\n          }\n        }\'',
      },
    },
  },
  {
    name: 'submitCreditBureau',
    endpoint: '/api/v1/parties/{partyId}/loan-applications/{loanApplicationId}:submit-credit-bureau',
    httpMethod: 'post',
    summary: 'Submit Information To The Credit Bureau For An Existing Party',
    description: 'Triggers the submission of information to the credit bureau for an existing party.',
    stainlessPath: '(resource) parties.loan-applications > (method) submitCreditBureau',
    qualified: 'client.parties.loanApplications.submitCreditBureau',
    params: [
      'partyId: string;',
      'loanApplicationId: string;',
      'plmr-user-action?: boolean;',
      'X-Request-ID?: string;',
    ],
    markdown:
      "## submitCreditBureau\n\n`client.parties.loanApplications.submitCreditBureau(partyId: string, loanApplicationId: string, plmr-user-action?: boolean, X-Request-ID?: string): void`\n\n**post** `/api/v1/parties/{partyId}/loan-applications/{loanApplicationId}:submit-credit-bureau`\n\nTriggers the submission of information to the credit bureau for an existing party.\n\n### Parameters\n\n- `partyId: string`\n\n- `loanApplicationId: string`\n\n- `plmr-user-action?: boolean`\n\n- `X-Request-ID?: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nawait client.parties.loanApplications.submitCreditBureau('36a22460-ebc8-4ffe-a213-1683c5a420c5', { partyId: '36a22460-ebc8-4ffe-a213-1683c5a420c5' })\n```",
    perLanguage: {
      typescript: {
        method: 'client.parties.loanApplications.submitCreditBureau',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nawait client.parties.loanApplications.submitCreditBureau('36a22460-ebc8-4ffe-a213-1683c5a420c5', {\n  partyId: '36a22460-ebc8-4ffe-a213-1683c5a420c5',\n});",
      },
      python: {
        method: 'parties.loan_applications.submit_credit_bureau',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nclient.parties.loan_applications.submit_credit_bureau(\n    loan_application_id="36a22460-ebc8-4ffe-a213-1683c5a420c5",\n    party_id="36a22460-ebc8-4ffe-a213-1683c5a420c5",\n)',
      },
      java: {
        method: 'parties().loanApplications().submitCreditBureau',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.parties.loanapplications.LoanApplicationSubmitCreditBureauParams;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        LoanApplicationSubmitCreditBureauParams params = LoanApplicationSubmitCreditBureauParams.builder()\n            .partyId("36a22460-ebc8-4ffe-a213-1683c5a420c5")\n            .loanApplicationId("36a22460-ebc8-4ffe-a213-1683c5a420c5")\n            .build();\n        client.parties().loanApplications().submitCreditBureau(params);\n    }\n}',
      },
      kotlin: {
        method: 'parties().loanApplications().submitCreditBureau',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.parties.loanapplications.LoanApplicationSubmitCreditBureauParams\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: LoanApplicationSubmitCreditBureauParams = LoanApplicationSubmitCreditBureauParams.builder()\n        .partyId("36a22460-ebc8-4ffe-a213-1683c5a420c5")\n        .loanApplicationId("36a22460-ebc8-4ffe-a213-1683c5a420c5")\n        .build()\n    client.parties().loanApplications().submitCreditBureau(params)\n}',
      },
      go: {
        method: 'client.Parties.LoanApplications.SubmitCreditBureau',
        example:
          'package main\n\nimport (\n\t"context"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\terr := client.Parties.LoanApplications.SubmitCreditBureau(\n\t\tcontext.TODO(),\n\t\t"36a22460-ebc8-4ffe-a213-1683c5a420c5",\n\t\t"36a22460-ebc8-4ffe-a213-1683c5a420c5",\n\t\tplumery.PartyLoanApplicationSubmitCreditBureauParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
      },
      cli: {
        method: 'loan-applications submitCreditBureau',
        example:
          "plumery parties:loan-applications submit-credit-bureau \\\n  --session 'My Session' \\\n  --party-id 36a22460-ebc8-4ffe-a213-1683c5a420c5 \\\n  --loan-application-id 36a22460-ebc8-4ffe-a213-1683c5a420c5",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/parties/$PARTY_ID/loan-applications/$LOAN_APPLICATION_ID:submit-credit-bureau \\\n    -X POST \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'generateOffer',
    endpoint: '/api/v1/parties/{partyId}/loan-applications/{loanApplicationId}:generate-offer',
    httpMethod: 'post',
    summary: 'Generate Loan Offer For An Existing Party',
    description:
      'Generate offer taking into account information provided during loan application input for an existing party.',
    stainlessPath: '(resource) parties.loan-applications > (method) generateOffer',
    qualified: 'client.parties.loanApplications.generateOffer',
    params: [
      'partyId: string;',
      'loanApplicationId: string;',
      'plmr-user-action?: boolean;',
      'X-Request-ID?: string;',
    ],
    response:
      "{ installments?: { feeAmount?: { amount: number; currency: string; }; feeTaxAmount?: { amount: number; currency: string; }; interestAmount?: { amount: number; currency: string; }; interestTaxAmount?: { amount: number; currency: string; }; number?: number; principalAmount?: { amount: number; currency: string; }; repaymentDate?: string; }[]; loanDetails?: { firstRepaymentDate: string; interestRate: number; loanAmount: { amount: number; currency: string; }; loanDuration: number; repaymentInterval?: number; repaymentUnit?: 'MONTHS'; }; }",
    markdown:
      "## generateOffer\n\n`client.parties.loanApplications.generateOffer(partyId: string, loanApplicationId: string, plmr-user-action?: boolean, X-Request-ID?: string): { installments?: object[]; loanDetails?: object; }`\n\n**post** `/api/v1/parties/{partyId}/loan-applications/{loanApplicationId}:generate-offer`\n\nGenerate offer taking into account information provided during loan application input for an existing party.\n\n### Parameters\n\n- `partyId: string`\n\n- `loanApplicationId: string`\n\n- `plmr-user-action?: boolean`\n\n- `X-Request-ID?: string`\n\n### Returns\n\n- `{ installments?: { feeAmount?: { amount: number; currency: string; }; feeTaxAmount?: { amount: number; currency: string; }; interestAmount?: { amount: number; currency: string; }; interestTaxAmount?: { amount: number; currency: string; }; number?: number; principalAmount?: { amount: number; currency: string; }; repaymentDate?: string; }[]; loanDetails?: { firstRepaymentDate: string; interestRate: number; loanAmount: { amount: number; currency: string; }; loanDuration: number; repaymentInterval?: number; repaymentUnit?: 'MONTHS'; }; }`\n\n  - `installments?: { feeAmount?: { amount: number; currency: string; }; feeTaxAmount?: { amount: number; currency: string; }; interestAmount?: { amount: number; currency: string; }; interestTaxAmount?: { amount: number; currency: string; }; number?: number; principalAmount?: { amount: number; currency: string; }; repaymentDate?: string; }[]`\n  - `loanDetails?: { firstRepaymentDate: string; interestRate: number; loanAmount: { amount: number; currency: string; }; loanDuration: number; repaymentInterval?: number; repaymentUnit?: 'MONTHS'; }`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.parties.loanApplications.generateOffer('36a22460-ebc8-4ffe-a213-1683c5a420c5', { partyId: '36a22460-ebc8-4ffe-a213-1683c5a420c5' });\n\nconsole.log(response);\n```",
    perLanguage: {
      typescript: {
        method: 'client.parties.loanApplications.generateOffer',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nconst response = await client.parties.loanApplications.generateOffer(\n  '36a22460-ebc8-4ffe-a213-1683c5a420c5',\n  { partyId: '36a22460-ebc8-4ffe-a213-1683c5a420c5' },\n);\n\nconsole.log(response.installments);",
      },
      python: {
        method: 'parties.loan_applications.generate_offer',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nresponse = client.parties.loan_applications.generate_offer(\n    loan_application_id="36a22460-ebc8-4ffe-a213-1683c5a420c5",\n    party_id="36a22460-ebc8-4ffe-a213-1683c5a420c5",\n)\nprint(response.installments)',
      },
      java: {
        method: 'parties().loanApplications().generateOffer',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.parties.loanapplications.LoanApplicationGenerateOfferParams;\nimport com.plumery.api.models.parties.loanapplications.LoanApplicationGenerateOfferResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        LoanApplicationGenerateOfferParams params = LoanApplicationGenerateOfferParams.builder()\n            .partyId("36a22460-ebc8-4ffe-a213-1683c5a420c5")\n            .loanApplicationId("36a22460-ebc8-4ffe-a213-1683c5a420c5")\n            .build();\n        LoanApplicationGenerateOfferResponse response = client.parties().loanApplications().generateOffer(params);\n    }\n}',
      },
      kotlin: {
        method: 'parties().loanApplications().generateOffer',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.parties.loanapplications.LoanApplicationGenerateOfferParams\nimport com.plumery.api.models.parties.loanapplications.LoanApplicationGenerateOfferResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: LoanApplicationGenerateOfferParams = LoanApplicationGenerateOfferParams.builder()\n        .partyId("36a22460-ebc8-4ffe-a213-1683c5a420c5")\n        .loanApplicationId("36a22460-ebc8-4ffe-a213-1683c5a420c5")\n        .build()\n    val response: LoanApplicationGenerateOfferResponse = client.parties().loanApplications().generateOffer(params)\n}',
      },
      go: {
        method: 'client.Parties.LoanApplications.GenerateOffer',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tresponse, err := client.Parties.LoanApplications.GenerateOffer(\n\t\tcontext.TODO(),\n\t\t"36a22460-ebc8-4ffe-a213-1683c5a420c5",\n\t\t"36a22460-ebc8-4ffe-a213-1683c5a420c5",\n\t\tplumery.PartyLoanApplicationGenerateOfferParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.Installments)\n}\n',
      },
      cli: {
        method: 'loan-applications generateOffer',
        example:
          "plumery parties:loan-applications generate-offer \\\n  --session 'My Session' \\\n  --party-id 36a22460-ebc8-4ffe-a213-1683c5a420c5 \\\n  --loan-application-id 36a22460-ebc8-4ffe-a213-1683c5a420c5",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/parties/$PARTY_ID/loan-applications/$LOAN_APPLICATION_ID:generate-offer \\\n    -X POST \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'acceptOffer',
    endpoint: '/api/v1/parties/{partyId}/loan-applications/{loanApplicationId}:accept-offer',
    httpMethod: 'post',
    summary: 'Accept Loan Offer For An Existing Party',
    description: 'Accept offer for an existing party.',
    stainlessPath: '(resource) parties.loan-applications > (method) acceptOffer',
    qualified: 'client.parties.loanApplications.acceptOffer',
    params: [
      'partyId: string;',
      'loanApplicationId: string;',
      'plmr-user-action?: boolean;',
      'X-Request-ID?: string;',
    ],
    response: '{ links?: { href?: string; rel?: string; }[]; }',
    markdown:
      "## acceptOffer\n\n`client.parties.loanApplications.acceptOffer(partyId: string, loanApplicationId: string, plmr-user-action?: boolean, X-Request-ID?: string): { links?: object[]; }`\n\n**post** `/api/v1/parties/{partyId}/loan-applications/{loanApplicationId}:accept-offer`\n\nAccept offer for an existing party.\n\n### Parameters\n\n- `partyId: string`\n\n- `loanApplicationId: string`\n\n- `plmr-user-action?: boolean`\n\n- `X-Request-ID?: string`\n\n### Returns\n\n- `{ links?: { href?: string; rel?: string; }[]; }`\n\n  - `links?: { href?: string; rel?: string; }[]`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.parties.loanApplications.acceptOffer('36a22460-ebc8-4ffe-a213-1683c5a420c5', { partyId: '36a22460-ebc8-4ffe-a213-1683c5a420c5' });\n\nconsole.log(response);\n```",
    perLanguage: {
      typescript: {
        method: 'client.parties.loanApplications.acceptOffer',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nconst response = await client.parties.loanApplications.acceptOffer(\n  '36a22460-ebc8-4ffe-a213-1683c5a420c5',\n  { partyId: '36a22460-ebc8-4ffe-a213-1683c5a420c5' },\n);\n\nconsole.log(response.links);",
      },
      python: {
        method: 'parties.loan_applications.accept_offer',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nresponse = client.parties.loan_applications.accept_offer(\n    loan_application_id="36a22460-ebc8-4ffe-a213-1683c5a420c5",\n    party_id="36a22460-ebc8-4ffe-a213-1683c5a420c5",\n)\nprint(response.links)',
      },
      java: {
        method: 'parties().loanApplications().acceptOffer',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.parties.loanapplications.LoanApplicationAcceptOfferParams;\nimport com.plumery.api.models.parties.loanapplications.LoanApplicationAcceptOfferResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        LoanApplicationAcceptOfferParams params = LoanApplicationAcceptOfferParams.builder()\n            .partyId("36a22460-ebc8-4ffe-a213-1683c5a420c5")\n            .loanApplicationId("36a22460-ebc8-4ffe-a213-1683c5a420c5")\n            .build();\n        LoanApplicationAcceptOfferResponse response = client.parties().loanApplications().acceptOffer(params);\n    }\n}',
      },
      kotlin: {
        method: 'parties().loanApplications().acceptOffer',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.parties.loanapplications.LoanApplicationAcceptOfferParams\nimport com.plumery.api.models.parties.loanapplications.LoanApplicationAcceptOfferResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: LoanApplicationAcceptOfferParams = LoanApplicationAcceptOfferParams.builder()\n        .partyId("36a22460-ebc8-4ffe-a213-1683c5a420c5")\n        .loanApplicationId("36a22460-ebc8-4ffe-a213-1683c5a420c5")\n        .build()\n    val response: LoanApplicationAcceptOfferResponse = client.parties().loanApplications().acceptOffer(params)\n}',
      },
      go: {
        method: 'client.Parties.LoanApplications.AcceptOffer',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tresponse, err := client.Parties.LoanApplications.AcceptOffer(\n\t\tcontext.TODO(),\n\t\t"36a22460-ebc8-4ffe-a213-1683c5a420c5",\n\t\t"36a22460-ebc8-4ffe-a213-1683c5a420c5",\n\t\tplumery.PartyLoanApplicationAcceptOfferParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.Links)\n}\n',
      },
      cli: {
        method: 'loan-applications acceptOffer',
        example:
          "plumery parties:loan-applications accept-offer \\\n  --session 'My Session' \\\n  --party-id 36a22460-ebc8-4ffe-a213-1683c5a420c5 \\\n  --loan-application-id 36a22460-ebc8-4ffe-a213-1683c5a420c5",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/parties/$PARTY_ID/loan-applications/$LOAN_APPLICATION_ID:accept-offer \\\n    -X POST \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'setBankAccountDetails',
    endpoint: '/api/v1/parties/{partyId}/loan-applications/{loanApplicationId}:set-bank-account-details',
    httpMethod: 'post',
    summary: 'Collect Bank Account Details For An Existing Party',
    description: 'Collects party bank account details for a loan application for an existing party.',
    stainlessPath: '(resource) parties.loan-applications > (method) setBankAccountDetails',
    qualified: 'client.parties.loanApplications.setBankAccountDetails',
    params: [
      'partyId: string;',
      'loanApplicationId: string;',
      'accountNumber: string;',
      'bankNumber: string;',
      'accountName?: string;',
      'accountType?: string;',
      'bankName?: string;',
      'plmr-user-action?: boolean;',
      'X-Request-ID?: string;',
    ],
    markdown:
      "## setBankAccountDetails\n\n`client.parties.loanApplications.setBankAccountDetails(partyId: string, loanApplicationId: string, accountNumber: string, bankNumber: string, accountName?: string, accountType?: string, bankName?: string, plmr-user-action?: boolean, X-Request-ID?: string): void`\n\n**post** `/api/v1/parties/{partyId}/loan-applications/{loanApplicationId}:set-bank-account-details`\n\nCollects party bank account details for a loan application for an existing party.\n\n### Parameters\n\n- `partyId: string`\n\n- `loanApplicationId: string`\n\n- `accountNumber: string`\n\n- `bankNumber: string`\n\n- `accountName?: string`\n\n- `accountType?: string`\n\n- `bankName?: string`\n\n- `plmr-user-action?: boolean`\n\n- `X-Request-ID?: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nawait client.parties.loanApplications.setBankAccountDetails('36a22460-ebc8-4ffe-a213-1683c5a420c5', {\n  partyId: '36a22460-ebc8-4ffe-a213-1683c5a420c5',\n  accountNumber: '123456789012345678',\n  bankNumber: '123',\n})\n```",
    perLanguage: {
      typescript: {
        method: 'client.parties.loanApplications.setBankAccountDetails',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nawait client.parties.loanApplications.setBankAccountDetails(\n  '36a22460-ebc8-4ffe-a213-1683c5a420c5',\n  {\n    partyId: '36a22460-ebc8-4ffe-a213-1683c5a420c5',\n    accountNumber: '123456789012345678',\n    bankNumber: '123',\n  },\n);",
      },
      python: {
        method: 'parties.loan_applications.set_bank_account_details',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nclient.parties.loan_applications.set_bank_account_details(\n    loan_application_id="36a22460-ebc8-4ffe-a213-1683c5a420c5",\n    party_id="36a22460-ebc8-4ffe-a213-1683c5a420c5",\n    account_number="123456789012345678",\n    bank_number="123",\n)',
      },
      java: {
        method: 'parties().loanApplications().setBankAccountDetails',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.parties.loanapplications.LoanApplicationSetBankAccountDetailsParams;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        LoanApplicationSetBankAccountDetailsParams params = LoanApplicationSetBankAccountDetailsParams.builder()\n            .partyId("36a22460-ebc8-4ffe-a213-1683c5a420c5")\n            .loanApplicationId("36a22460-ebc8-4ffe-a213-1683c5a420c5")\n            .accountNumber("123456789012345678")\n            .bankNumber("123")\n            .build();\n        client.parties().loanApplications().setBankAccountDetails(params);\n    }\n}',
      },
      kotlin: {
        method: 'parties().loanApplications().setBankAccountDetails',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.parties.loanapplications.LoanApplicationSetBankAccountDetailsParams\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: LoanApplicationSetBankAccountDetailsParams = LoanApplicationSetBankAccountDetailsParams.builder()\n        .partyId("36a22460-ebc8-4ffe-a213-1683c5a420c5")\n        .loanApplicationId("36a22460-ebc8-4ffe-a213-1683c5a420c5")\n        .accountNumber("123456789012345678")\n        .bankNumber("123")\n        .build()\n    client.parties().loanApplications().setBankAccountDetails(params)\n}',
      },
      go: {
        method: 'client.Parties.LoanApplications.SetBankAccountDetails',
        example:
          'package main\n\nimport (\n\t"context"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\terr := client.Parties.LoanApplications.SetBankAccountDetails(\n\t\tcontext.TODO(),\n\t\t"36a22460-ebc8-4ffe-a213-1683c5a420c5",\n\t\t"36a22460-ebc8-4ffe-a213-1683c5a420c5",\n\t\tplumery.PartyLoanApplicationSetBankAccountDetailsParams{\n\t\t\tAccountNumber: plumery.F("123456789012345678"),\n\t\t\tBankNumber:    plumery.F("123"),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
      },
      cli: {
        method: 'loan-applications setBankAccountDetails',
        example:
          "plumery parties:loan-applications set-bank-account-details \\\n  --session 'My Session' \\\n  --party-id 36a22460-ebc8-4ffe-a213-1683c5a420c5 \\\n  --loan-application-id 36a22460-ebc8-4ffe-a213-1683c5a420c5 \\\n  --account-number 123456789012345678 \\\n  --bank-number 123",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/parties/$PARTY_ID/loan-applications/$LOAN_APPLICATION_ID:set-bank-account-details \\\n    -H \'Content-Type: application/json\' \\\n    -H "Cookie: $SESSION" \\\n    -d \'{\n          "accountNumber": "123456789012345678",\n          "bankNumber": "123",\n          "accountName": "Account Name",\n          "accountType": "Checking",\n          "bankName": "Bank Name"\n        }\'',
      },
    },
  },
  {
    name: 'uploadDocument',
    endpoint: '/api/v1/parties/{partyId}/loan-applications/{loanApplicationId}:upload-document',
    httpMethod: 'post',
    summary: 'Upload Document For An Existing Party',
    description: 'Upload a document for a loan application for an existing party.',
    stainlessPath: '(resource) parties.loan-applications > (method) uploadDocument',
    qualified: 'client.parties.loanApplications.uploadDocument',
    params: [
      'partyId: string;',
      'loanApplicationId: string;',
      "documentType: 'INCOME_PROOF' | 'BUSINESS_LICENSE' | 'FINANCIAL_STATEMENTS';",
      'file: string;',
      'filename: string;',
      'plmr-user-action?: boolean;',
      'X-Request-ID?: string;',
    ],
    markdown:
      "## uploadDocument\n\n`client.parties.loanApplications.uploadDocument(partyId: string, loanApplicationId: string, documentType: 'INCOME_PROOF' | 'BUSINESS_LICENSE' | 'FINANCIAL_STATEMENTS', file: string, filename: string, plmr-user-action?: boolean, X-Request-ID?: string): void`\n\n**post** `/api/v1/parties/{partyId}/loan-applications/{loanApplicationId}:upload-document`\n\nUpload a document for a loan application for an existing party.\n\n### Parameters\n\n- `partyId: string`\n\n- `loanApplicationId: string`\n\n- `documentType: 'INCOME_PROOF' | 'BUSINESS_LICENSE' | 'FINANCIAL_STATEMENTS'`\n\n- `file: string`\n\n- `filename: string`\n\n- `plmr-user-action?: boolean`\n\n- `X-Request-ID?: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nawait client.parties.loanApplications.uploadDocument('36a22460-ebc8-4ffe-a213-1683c5a420c5', {\n  partyId: '36a22460-ebc8-4ffe-a213-1683c5a420c5',\n  documentType: 'INCOME_PROOF',\n  file: fs.createReadStream('path/to/file'),\n  filename: 'filename',\n})\n```",
    perLanguage: {
      typescript: {
        method: 'client.parties.loanApplications.uploadDocument',
        example:
          "import fs from 'fs';\nimport Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nawait client.parties.loanApplications.uploadDocument('36a22460-ebc8-4ffe-a213-1683c5a420c5', {\n  partyId: '36a22460-ebc8-4ffe-a213-1683c5a420c5',\n  documentType: 'INCOME_PROOF',\n  file: fs.createReadStream('path/to/file'),\n  filename: 'filename',\n});",
      },
      python: {
        method: 'parties.loan_applications.upload_document',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nclient.parties.loan_applications.upload_document(\n    loan_application_id="36a22460-ebc8-4ffe-a213-1683c5a420c5",\n    party_id="36a22460-ebc8-4ffe-a213-1683c5a420c5",\n    document_type="INCOME_PROOF",\n    file=b"Example data",\n    filename="filename",\n)',
      },
      java: {
        method: 'parties().loanApplications().uploadDocument',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.parties.loanapplications.LoanApplicationUploadDocumentParams;\nimport java.io.ByteArrayInputStream;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        LoanApplicationUploadDocumentParams params = LoanApplicationUploadDocumentParams.builder()\n            .partyId("36a22460-ebc8-4ffe-a213-1683c5a420c5")\n            .loanApplicationId("36a22460-ebc8-4ffe-a213-1683c5a420c5")\n            .documentType(LoanApplicationUploadDocumentParams.DocumentType.INCOME_PROOF)\n            .file(new ByteArrayInputStream("Example data".getBytes()))\n            .filename("filename")\n            .build();\n        client.parties().loanApplications().uploadDocument(params);\n    }\n}',
      },
      kotlin: {
        method: 'parties().loanApplications().uploadDocument',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.parties.loanapplications.LoanApplicationUploadDocumentParams\nimport java.io.ByteArrayInputStream\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: LoanApplicationUploadDocumentParams = LoanApplicationUploadDocumentParams.builder()\n        .partyId("36a22460-ebc8-4ffe-a213-1683c5a420c5")\n        .loanApplicationId("36a22460-ebc8-4ffe-a213-1683c5a420c5")\n        .documentType(LoanApplicationUploadDocumentParams.DocumentType.INCOME_PROOF)\n        .file("Example data".byteInputStream())\n        .filename("filename")\n        .build()\n    client.parties().loanApplications().uploadDocument(params)\n}',
      },
      go: {
        method: 'client.Parties.LoanApplications.UploadDocument',
        example:
          'package main\n\nimport (\n\t"bytes"\n\t"context"\n\t"io"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\terr := client.Parties.LoanApplications.UploadDocument(\n\t\tcontext.TODO(),\n\t\t"36a22460-ebc8-4ffe-a213-1683c5a420c5",\n\t\t"36a22460-ebc8-4ffe-a213-1683c5a420c5",\n\t\tplumery.PartyLoanApplicationUploadDocumentParams{\n\t\t\tDocumentType: plumery.F(plumery.PartyLoanApplicationUploadDocumentParamsDocumentTypeIncomeProof),\n\t\t\tFile:         plumery.F(io.Reader(bytes.NewBuffer([]byte("Example data")))),\n\t\t\tFilename:     plumery.F("filename"),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
      },
      cli: {
        method: 'loan-applications uploadDocument',
        example:
          "plumery parties:loan-applications upload-document \\\n  --session 'My Session' \\\n  --party-id 36a22460-ebc8-4ffe-a213-1683c5a420c5 \\\n  --loan-application-id 36a22460-ebc8-4ffe-a213-1683c5a420c5 \\\n  --document-type INCOME_PROOF \\\n  --file 'Example data' \\\n  --filename filename",
      },
      http: {
        example:
          "curl https://api.plumery.com/api/v1/parties/$PARTY_ID/loan-applications/$LOAN_APPLICATION_ID:upload-document \\\n    -H 'Content-Type: multipart/form-data' \\\n    -H \"Cookie: $SESSION\" \\\n    -F documentType=INCOME_PROOF \\\n    -F 'file=@/path/to/file' \\\n    -F filename=filename",
      },
    },
  },
  {
    name: 'list',
    endpoint: '/api/v1/parties/{partyId}/loan-applications',
    httpMethod: 'get',
    summary: 'Get Loan Applications',
    description: 'Get user loans applications.',
    stainlessPath: '(resource) parties.loan-applications > (method) list',
    qualified: 'client.parties.loanApplications.list',
    params: ['partyId: string;', 'plmr-user-action?: boolean;', 'X-Request-ID?: string;'],
    response:
      "{ loanApplications?: { id?: string; businessDetails?: object; collateralDetails?: object; employmentDetails?: object; financialInformation?: object; housingDetails?: object; loanDetails?: object; offer?: object; personalDetails?: object; purposeDetails?: string; status?: 'RCVD' | 'ACPT' | 'RJCT'; }[]; }",
    markdown:
      "## list\n\n`client.parties.loanApplications.list(partyId: string, plmr-user-action?: boolean, X-Request-ID?: string): { loanApplications?: object[]; }`\n\n**get** `/api/v1/parties/{partyId}/loan-applications`\n\nGet user loans applications.\n\n### Parameters\n\n- `partyId: string`\n\n- `plmr-user-action?: boolean`\n\n- `X-Request-ID?: string`\n\n### Returns\n\n- `{ loanApplications?: { id?: string; businessDetails?: { annualRevenue: object; businessType: string; numberOfEmployees: number; yearsInBusiness: number; }; collateralDetails?: { condition: 'EXCELLENT' | 'GOOD' | 'FAIR'; description: string; type: 'VEHICLE' | 'PROPERTY' | 'EQUIPMENT'; value: object; }; employmentDetails?: { employmentStatus: 'EMPLOYED' | 'HOMEMAKER' | 'UNEMPLOYED' | 'RETIRED' | 'SELF_EMPLOYED'; incomeFrequency: 'MONTHLY' | 'FORTNIGHTLY' | 'WEEKLY' | 'UNDEFINED'; monthlyIncome: object; occupation: string; originOfResources: string; }; financialInformation?: { monthlyExpenses: object; monthlyRevenue: object; netMonthlyProfit: object; }; housingDetails?: { housingSituation: 'RENTER' | 'HOMEOWNER_WITH_MORTGAGE' | 'HOMEOWNER_WITHOUT_MORTGAGE'; monthlyHousingCost: object; yearsLivingAtHome: number; landlinePhoneNumber?: string; }; loanDetails?: { firstRepaymentDate: string; loanAmount: object; loanDuration: number; repaymentInterval?: number; repaymentUnit?: 'MONTHS'; }; offer?: { amount?: number; currencyCode?: string; firstRepaymentDate?: string; offerId?: string; periodCount?: number; }; personalDetails?: { creditDestination: string; everDivorced: boolean; financialDependents: number; maritalStatus: string; monthlyExpenses: object; signatureSerialNumber?: string; }; purposeDetails?: string; status?: 'RCVD' | 'ACPT' | 'RJCT'; }[]; }`\n\n  - `loanApplications?: { id?: string; businessDetails?: { annualRevenue: { amount: number; currency: string; }; businessType: string; numberOfEmployees: number; yearsInBusiness: number; }; collateralDetails?: { condition: 'EXCELLENT' | 'GOOD' | 'FAIR'; description: string; type: 'VEHICLE' | 'PROPERTY' | 'EQUIPMENT'; value: { amount: number; currency: string; }; }; employmentDetails?: { employmentStatus: 'EMPLOYED' | 'HOMEMAKER' | 'UNEMPLOYED' | 'RETIRED' | 'SELF_EMPLOYED'; incomeFrequency: 'MONTHLY' | 'FORTNIGHTLY' | 'WEEKLY' | 'UNDEFINED'; monthlyIncome: { amount: number; currency: string; }; occupation: string; originOfResources: string; }; financialInformation?: { monthlyExpenses: { amount: number; currency: string; }; monthlyRevenue: { amount: number; currency: string; }; netMonthlyProfit: { amount: number; currency: string; }; }; housingDetails?: { housingSituation: 'RENTER' | 'HOMEOWNER_WITH_MORTGAGE' | 'HOMEOWNER_WITHOUT_MORTGAGE'; monthlyHousingCost: { amount: number; currency: string; }; yearsLivingAtHome: number; landlinePhoneNumber?: string; }; loanDetails?: { firstRepaymentDate: string; loanAmount: { amount: number; currency: string; }; loanDuration: number; repaymentInterval?: number; repaymentUnit?: 'MONTHS'; }; offer?: { amount?: number; currencyCode?: string; firstRepaymentDate?: string; offerId?: string; periodCount?: number; }; personalDetails?: { creditDestination: string; everDivorced: boolean; financialDependents: number; maritalStatus: string; monthlyExpenses: { amount: number; currency: string; }; signatureSerialNumber?: string; }; purposeDetails?: string; status?: 'RCVD' | 'ACPT' | 'RJCT'; }[]`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst loanApplications = await client.parties.loanApplications.list('36a22460-ebc8-4ffe-a213-1683c5a420c5');\n\nconsole.log(loanApplications);\n```",
    perLanguage: {
      typescript: {
        method: 'client.parties.loanApplications.list',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nconst loanApplications = await client.parties.loanApplications.list(\n  '36a22460-ebc8-4ffe-a213-1683c5a420c5',\n);\n\nconsole.log(loanApplications.loanApplications);",
      },
      python: {
        method: 'parties.loan_applications.list',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nloan_applications = client.parties.loan_applications.list(\n    party_id="36a22460-ebc8-4ffe-a213-1683c5a420c5",\n)\nprint(loan_applications.loan_applications)',
      },
      java: {
        method: 'parties().loanApplications().list',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.parties.loanapplications.LoanApplicationListParams;\nimport com.plumery.api.models.parties.loanapplications.LoanApplicationListResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        LoanApplicationListResponse loanApplications = client.parties().loanApplications().list("36a22460-ebc8-4ffe-a213-1683c5a420c5");\n    }\n}',
      },
      kotlin: {
        method: 'parties().loanApplications().list',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.parties.loanapplications.LoanApplicationListParams\nimport com.plumery.api.models.parties.loanapplications.LoanApplicationListResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val loanApplications: LoanApplicationListResponse = client.parties().loanApplications().list("36a22460-ebc8-4ffe-a213-1683c5a420c5")\n}',
      },
      go: {
        method: 'client.Parties.LoanApplications.List',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tloanApplications, err := client.Parties.LoanApplications.List(\n\t\tcontext.TODO(),\n\t\t"36a22460-ebc8-4ffe-a213-1683c5a420c5",\n\t\tplumery.PartyLoanApplicationListParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", loanApplications.LoanApplications)\n}\n',
      },
      cli: {
        method: 'loan-applications list',
        example:
          "plumery parties:loan-applications list \\\n  --session 'My Session' \\\n  --party-id 36a22460-ebc8-4ffe-a213-1683c5a420c5",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/parties/$PARTY_ID/loan-applications \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'create',
    endpoint: '/api/v1/parties/{partyId}/cards',
    httpMethod: 'post',
    summary: 'Create new card',
    description:
      'Initiates a new card creation. \nOnce card creation is completed, card can be viewed in the list of cards \nand cardholder will be notified about successful card creation.\n',
    stainlessPath: '(resource) parties.cards > (method) create',
    qualified: 'client.parties.cards.create',
    params: [
      'partyId: string;',
      "body?: { primaryAccountId: string; alias?: string; customisation?: { colour?: string; designId?: string; text?: string; }; holderId?: string; productId?: string; type?: string; } | { primaryAccountId: string; alias?: string; customisation?: { colour?: string; designId?: string; text?: string; }; holderId?: string; productId?: string; shippingAddress?: { buildingNumber: string; country: string; streetName: string; townName: string; buildingName?: string; countrySubDivision?: string; districtName?: string; floor?: string; postBox?: string; postCode?: string; suite?: string; townLocationName?: string; }; shippingMethod?: 'STANDARD' | 'EXPEDITE'; type?: string; };",
      'plmr-user-action?: boolean;',
      'X-Request-ID?: string;',
    ],
    markdown:
      "## create\n\n`client.parties.cards.create(partyId: string, body?: { primaryAccountId: string; alias?: string; customisation?: { colour?: string; designId?: string; text?: string; }; holderId?: string; productId?: string; type?: string; } | { primaryAccountId: string; alias?: string; customisation?: { colour?: string; designId?: string; text?: string; }; holderId?: string; productId?: string; shippingAddress?: { buildingNumber: string; country: string; streetName: string; townName: string; buildingName?: string; countrySubDivision?: string; districtName?: string; floor?: string; postBox?: string; postCode?: string; suite?: string; townLocationName?: string; }; shippingMethod?: 'STANDARD' | 'EXPEDITE'; type?: string; }, plmr-user-action?: boolean, X-Request-ID?: string): void`\n\n**post** `/api/v1/parties/{partyId}/cards`\n\nInitiates a new card creation. \nOnce card creation is completed, card can be viewed in the list of cards \nand cardholder will be notified about successful card creation.\n\n\n### Parameters\n\n- `partyId: string`\n\n- `body?: { primaryAccountId: string; alias?: string; customisation?: { colour?: string; designId?: string; text?: string; }; holderId?: string; productId?: string; type?: string; } | { primaryAccountId: string; alias?: string; customisation?: { colour?: string; designId?: string; text?: string; }; holderId?: string; productId?: string; shippingAddress?: { buildingNumber: string; country: string; streetName: string; townName: string; buildingName?: string; countrySubDivision?: string; districtName?: string; floor?: string; postBox?: string; postCode?: string; suite?: string; townLocationName?: string; }; shippingMethod?: 'STANDARD' | 'EXPEDITE'; type?: string; }`\n\n- `plmr-user-action?: boolean`\n\n- `X-Request-ID?: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nawait client.parties.cards.create('6878951b-256b-4baa-9e81-ad4c577adc4e')\n```",
    perLanguage: {
      typescript: {
        method: 'client.parties.cards.create',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nawait client.parties.cards.create('6878951b-256b-4baa-9e81-ad4c577adc4e', {\n  primaryAccountId: '332cb801-1510-46c8-b4c5-a16b2ebc3757',\n});",
      },
      python: {
        method: 'parties.cards.create',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nclient.parties.cards.create(\n    party_id="6878951b-256b-4baa-9e81-ad4c577adc4e",\n    primary_account_id="332cb801-1510-46c8-b4c5-a16b2ebc3757",\n)',
      },
      java: {
        method: 'parties().cards().create',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.parties.cards.CardCreateParams;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        client.parties().cards().create("6878951b-256b-4baa-9e81-ad4c577adc4e");\n    }\n}',
      },
      kotlin: {
        method: 'parties().cards().create',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.parties.cards.CardCreateParams\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    client.parties().cards().create("6878951b-256b-4baa-9e81-ad4c577adc4e")\n}',
      },
      go: {
        method: 'client.Parties.Cards.New',
        example:
          'package main\n\nimport (\n\t"context"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\terr := client.Parties.Cards.New(\n\t\tcontext.TODO(),\n\t\t"6878951b-256b-4baa-9e81-ad4c577adc4e",\n\t\tplumery.PartyCardNewParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
      },
      cli: {
        method: 'cards create',
        example:
          "plumery parties:cards create \\\n  --session 'My Session' \\\n  --party-id 6878951b-256b-4baa-9e81-ad4c577adc4e \\\n  --primary-account-id 332cb801-1510-46c8-b4c5-a16b2ebc3757",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/parties/$PARTY_ID/cards \\\n    -X POST \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'list',
    endpoint: '/api/v1/parties/{partyId}/cards',
    httpMethod: 'get',
    summary: 'Get cards',
    description: 'Retrieve all cards. It only provides non-sensitive card information.',
    stainlessPath: '(resource) parties.cards > (method) list',
    qualified: 'client.parties.cards.list',
    params: [
      'partyId: string;',
      'accounts?: string[];',
      'cardHolderName?: string;',
      "cardStatus?: 'ACTIVE' | 'INACTIVE' | 'FROZEN' | 'TERMINATED' | 'EXPIRED'[];",
      'includeStatusHistory?: boolean;',
      'plmr-user-action?: boolean;',
      'X-Request-ID?: string;',
    ],
    response:
      "{ cards: { cardholder: string; cardId: string; cardStatus: 'ACTIVE' | 'INACTIVE' | 'FROZEN' | 'TERMINATED' | 'EXPIRED'; cardStatusDateTime: string; expirationDate: string; fulfillmentStatus: 'ISSUED' | 'ORDERED' | 'SHIPPED' | 'DELIVERED' | 'REQUESTED'; fulfillmentStatusDateTime: string; maskedPan: string; primaryAccountId: string; additionalAttributes?: object; alias?: string; atmWithdrawalsAllowed?: boolean; cardStatusHistory?: { cardStatus?: 'ACTIVE' | 'INACTIVE' | 'FROZEN' | 'TERMINATED' | 'EXPIRED'; cardStatusDateTime?: string; }[]; contactlessAllowed?: boolean; customisation?: { colour?: string; designId?: string; text?: string; }; fulfillmentStatusHistory?: { fulfillmentStatus?: 'ISSUED' | 'ORDERED' | 'SHIPPED' | 'DELIVERED' | 'REQUESTED'; fulfillmentStatusDateTime?: string; }[]; limitsList?: { amount: string; type: 'ATM_WITHDRAWAL' | 'PURCHASE'; window: 'DAILY' | 'WEEKLY' | 'MONTHLY'; }[]; onlinePaymentsAllowed?: boolean; productId?: string; type?: string; walletTokens?: { state: string; stateDateTime: string; walletType: string; walletToken?: string; }[]; }[]; }",
    markdown:
      "## list\n\n`client.parties.cards.list(partyId: string, accounts?: string[], cardHolderName?: string, cardStatus?: 'ACTIVE' | 'INACTIVE' | 'FROZEN' | 'TERMINATED' | 'EXPIRED'[], includeStatusHistory?: boolean, plmr-user-action?: boolean, X-Request-ID?: string): { cards: object[]; }`\n\n**get** `/api/v1/parties/{partyId}/cards`\n\nRetrieve all cards. It only provides non-sensitive card information.\n\n### Parameters\n\n- `partyId: string`\n\n- `accounts?: string[]`\n  Comma separated account ids to be contained in response.\n\n- `cardHolderName?: string`\n  Retrieve cards matching a specific card holder name. If unset, the filter will be \nignored and all cards will be retrieved.\n\n\n- `cardStatus?: 'ACTIVE' | 'INACTIVE' | 'FROZEN' | 'TERMINATED' | 'EXPIRED'[]`\n  Retrieve cards matching a specific card status (e.g., ACTIVE, FROZEN). If unset, the filter will be \nignored and all cards will be retrieved.\n\n\n- `includeStatusHistory?: boolean`\n  Set to `true` to include history of card transitions in the response.\n\n\n- `plmr-user-action?: boolean`\n\n- `X-Request-ID?: string`\n\n### Returns\n\n- `{ cards: { cardholder: string; cardId: string; cardStatus: 'ACTIVE' | 'INACTIVE' | 'FROZEN' | 'TERMINATED' | 'EXPIRED'; cardStatusDateTime: string; expirationDate: string; fulfillmentStatus: 'ISSUED' | 'ORDERED' | 'SHIPPED' | 'DELIVERED' | 'REQUESTED'; fulfillmentStatusDateTime: string; maskedPan: string; primaryAccountId: string; additionalAttributes?: object; alias?: string; atmWithdrawalsAllowed?: boolean; cardStatusHistory?: { cardStatus?: 'ACTIVE' | 'INACTIVE' | 'FROZEN' | 'TERMINATED' | 'EXPIRED'; cardStatusDateTime?: string; }[]; contactlessAllowed?: boolean; customisation?: { colour?: string; designId?: string; text?: string; }; fulfillmentStatusHistory?: { fulfillmentStatus?: 'ISSUED' | 'ORDERED' | 'SHIPPED' | 'DELIVERED' | 'REQUESTED'; fulfillmentStatusDateTime?: string; }[]; limitsList?: { amount: string; type: 'ATM_WITHDRAWAL' | 'PURCHASE'; window: 'DAILY' | 'WEEKLY' | 'MONTHLY'; }[]; onlinePaymentsAllowed?: boolean; productId?: string; type?: string; walletTokens?: { state: string; stateDateTime: string; walletType: string; walletToken?: string; }[]; }[]; }`\n\n  - `cards: { cardholder: string; cardId: string; cardStatus: 'ACTIVE' | 'INACTIVE' | 'FROZEN' | 'TERMINATED' | 'EXPIRED'; cardStatusDateTime: string; expirationDate: string; fulfillmentStatus: 'ISSUED' | 'ORDERED' | 'SHIPPED' | 'DELIVERED' | 'REQUESTED'; fulfillmentStatusDateTime: string; maskedPan: string; primaryAccountId: string; additionalAttributes?: object; alias?: string; atmWithdrawalsAllowed?: boolean; cardStatusHistory?: { cardStatus?: 'ACTIVE' | 'INACTIVE' | 'FROZEN' | 'TERMINATED' | 'EXPIRED'; cardStatusDateTime?: string; }[]; contactlessAllowed?: boolean; customisation?: { colour?: string; designId?: string; text?: string; }; fulfillmentStatusHistory?: { fulfillmentStatus?: 'ISSUED' | 'ORDERED' | 'SHIPPED' | 'DELIVERED' | 'REQUESTED'; fulfillmentStatusDateTime?: string; }[]; limitsList?: { amount: string; type: 'ATM_WITHDRAWAL' | 'PURCHASE'; window: 'DAILY' | 'WEEKLY' | 'MONTHLY'; }[]; onlinePaymentsAllowed?: boolean; productId?: string; type?: string; walletTokens?: { state: string; stateDateTime: string; walletType: string; walletToken?: string; }[]; }[]`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst cards = await client.parties.cards.list('6878951b-256b-4baa-9e81-ad4c577adc4e');\n\nconsole.log(cards);\n```",
    perLanguage: {
      typescript: {
        method: 'client.parties.cards.list',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nconst cards = await client.parties.cards.list('6878951b-256b-4baa-9e81-ad4c577adc4e');\n\nconsole.log(cards.cards);",
      },
      python: {
        method: 'parties.cards.list',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\ncards = client.parties.cards.list(\n    party_id="6878951b-256b-4baa-9e81-ad4c577adc4e",\n)\nprint(cards.cards)',
      },
      java: {
        method: 'parties().cards().list',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.parties.cards.CardListParams;\nimport com.plumery.api.models.parties.cards.CardListResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        CardListResponse cards = client.parties().cards().list("6878951b-256b-4baa-9e81-ad4c577adc4e");\n    }\n}',
      },
      kotlin: {
        method: 'parties().cards().list',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.parties.cards.CardListParams\nimport com.plumery.api.models.parties.cards.CardListResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val cards: CardListResponse = client.parties().cards().list("6878951b-256b-4baa-9e81-ad4c577adc4e")\n}',
      },
      go: {
        method: 'client.Parties.Cards.List',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tcards, err := client.Parties.Cards.List(\n\t\tcontext.TODO(),\n\t\t"6878951b-256b-4baa-9e81-ad4c577adc4e",\n\t\tplumery.PartyCardListParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", cards.Cards)\n}\n',
      },
      cli: {
        method: 'cards list',
        example:
          "plumery parties:cards list \\\n  --session 'My Session' \\\n  --party-id 6878951b-256b-4baa-9e81-ad4c577adc4e",
      },
      http: {
        example: 'curl https://api.plumery.com/api/v1/parties/$PARTY_ID/cards \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'retrieve',
    endpoint: '/api/v1/parties/{partyId}/cards/{cardId}',
    httpMethod: 'get',
    summary: 'Get card',
    description:
      'Retrieve details of a specific card. By default, it provides non-sensitive card information.\n\nWhen the query parameter `includeSensitiveData` is set to `true`, the response includes confidential card \ndetails such as the full Primary Account Number (PAN) and CVV2 number. Please note, for accessing such\nsensitive data, Multi-Factor Authentication (MFA) is recommended to ensure data security and privacy. This is \nbehaviour is pre-configured by default.\n',
    stainlessPath: '(resource) parties.cards > (method) retrieve',
    qualified: 'client.parties.cards.retrieve',
    params: [
      'partyId: string;',
      'cardId: string;',
      'includeSensitiveData?: boolean;',
      'includeStatusHistory?: boolean;',
      'plmr-mfa-challenge-id?: string;',
      'plmr-mfa-signature?: string;',
      'plmr-user-action?: boolean;',
      'X-Client-Public-Key?: string;',
      'X-Device-Integrity-Token?: string;',
      'X-Request-ID?: string;',
    ],
    response: 'object | object',
    markdown:
      "## retrieve\n\n`client.parties.cards.retrieve(partyId: string, cardId: string, includeSensitiveData?: boolean, includeStatusHistory?: boolean, plmr-mfa-challenge-id?: string, plmr-mfa-signature?: string, plmr-user-action?: boolean, X-Client-Public-Key?: string, X-Device-Integrity-Token?: string, X-Request-ID?: string): { cardholder: string; cardId: string; cardStatus: 'ACTIVE' | 'INACTIVE' | 'FROZEN' | 'TERMINATED' | 'EXPIRED'; cardStatusDateTime: string; expirationDate: string; fulfillmentStatus: 'ISSUED' | 'ORDERED' | 'SHIPPED' | 'DELIVERED' | 'REQUESTED'; fulfillmentStatusDateTime: string; maskedPan: string; primaryAccountId: string; additionalAttributes?: object; alias?: string; atmWithdrawalsAllowed?: boolean; cardStatusHistory?: object[]; contactlessAllowed?: boolean; customisation?: object; fulfillmentStatusHistory?: object[]; limitsList?: object[]; onlinePaymentsAllowed?: boolean; productId?: string; type?: string; walletTokens?: object[]; } | { cardholder: string; cardId: string; cardStatus: 'ACTIVE' | 'INACTIVE' | 'FROZEN' | 'TERMINATED' | 'EXPIRED'; cardStatusDateTime: string; encryptedPayload: object; expirationDate: string; fulfillmentStatus: 'ISSUED' | 'ORDERED' | 'SHIPPED' | 'DELIVERED' | 'REQUESTED'; fulfillmentStatusDateTime: string; maskedPan: string; primaryAccountId: string; additionalAttributes?: object; alias?: string; atmWithdrawalsAllowed?: boolean; cardStatusHistory?: object[]; contactlessAllowed?: boolean; customisation?: object; fulfillmentStatusHistory?: object[]; limitsList?: object[]; onlinePaymentsAllowed?: boolean; productId?: string; type?: string; walletTokens?: object[]; }`\n\n**get** `/api/v1/parties/{partyId}/cards/{cardId}`\n\nRetrieve details of a specific card. By default, it provides non-sensitive card information.\n\nWhen the query parameter `includeSensitiveData` is set to `true`, the response includes confidential card \ndetails such as the full Primary Account Number (PAN) and CVV2 number. Please note, for accessing such\nsensitive data, Multi-Factor Authentication (MFA) is recommended to ensure data security and privacy. This is \nbehaviour is pre-configured by default.\n\n\n### Parameters\n\n- `partyId: string`\n\n- `cardId: string`\n  Unique identifier for the card.\n\n- `includeSensitiveData?: boolean`\n  Set to `true` to include sensitive card data in the response.\n\n\n- `includeStatusHistory?: boolean`\n  Set to `true` to include history of card transitions in the response.\n\n\n- `plmr-mfa-challenge-id?: string`\n\n- `plmr-mfa-signature?: string`\n\n- `plmr-user-action?: boolean`\n\n- `X-Client-Public-Key?: string`\n\n- `X-Device-Integrity-Token?: string`\n\n- `X-Request-ID?: string`\n\n### Returns\n\n- `{ cardholder: string; cardId: string; cardStatus: 'ACTIVE' | 'INACTIVE' | 'FROZEN' | 'TERMINATED' | 'EXPIRED'; cardStatusDateTime: string; expirationDate: string; fulfillmentStatus: 'ISSUED' | 'ORDERED' | 'SHIPPED' | 'DELIVERED' | 'REQUESTED'; fulfillmentStatusDateTime: string; maskedPan: string; primaryAccountId: string; additionalAttributes?: object; alias?: string; atmWithdrawalsAllowed?: boolean; cardStatusHistory?: { cardStatus?: 'ACTIVE' | 'INACTIVE' | 'FROZEN' | 'TERMINATED' | 'EXPIRED'; cardStatusDateTime?: string; }[]; contactlessAllowed?: boolean; customisation?: { colour?: string; designId?: string; text?: string; }; fulfillmentStatusHistory?: { fulfillmentStatus?: 'ISSUED' | 'ORDERED' | 'SHIPPED' | 'DELIVERED' | 'REQUESTED'; fulfillmentStatusDateTime?: string; }[]; limitsList?: { amount: string; type: 'ATM_WITHDRAWAL' | 'PURCHASE'; window: 'DAILY' | 'WEEKLY' | 'MONTHLY'; }[]; onlinePaymentsAllowed?: boolean; productId?: string; type?: string; walletTokens?: { state: string; stateDateTime: string; walletType: string; walletToken?: string; }[]; } | { cardholder: string; cardId: string; cardStatus: 'ACTIVE' | 'INACTIVE' | 'FROZEN' | 'TERMINATED' | 'EXPIRED'; cardStatusDateTime: string; encryptedPayload: { encryptedData: string; iv: string; salt: string; serverPublicKey: string; }; expirationDate: string; fulfillmentStatus: 'ISSUED' | 'ORDERED' | 'SHIPPED' | 'DELIVERED' | 'REQUESTED'; fulfillmentStatusDateTime: string; maskedPan: string; primaryAccountId: string; additionalAttributes?: object; alias?: string; atmWithdrawalsAllowed?: boolean; cardStatusHistory?: { cardStatus?: 'ACTIVE' | 'INACTIVE' | 'FROZEN' | 'TERMINATED' | 'EXPIRED'; cardStatusDateTime?: string; }[]; contactlessAllowed?: boolean; customisation?: { colour?: string; designId?: string; text?: string; }; fulfillmentStatusHistory?: { fulfillmentStatus?: 'ISSUED' | 'ORDERED' | 'SHIPPED' | 'DELIVERED' | 'REQUESTED'; fulfillmentStatusDateTime?: string; }[]; limitsList?: { amount: string; type: 'ATM_WITHDRAWAL' | 'PURCHASE'; window: 'DAILY' | 'WEEKLY' | 'MONTHLY'; }[]; onlinePaymentsAllowed?: boolean; productId?: string; type?: string; walletTokens?: { state: string; stateDateTime: string; walletType: string; walletToken?: string; }[]; }`\n  Safe representation of a card, excluding any sensitive data.\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst card = await client.parties.cards.retrieve('d932902f-6832-4083-8c4e-77328b0e05d1', { partyId: '6878951b-256b-4baa-9e81-ad4c577adc4e' });\n\nconsole.log(card);\n```",
    perLanguage: {
      typescript: {
        method: 'client.parties.cards.retrieve',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nconst card = await client.parties.cards.retrieve('d932902f-6832-4083-8c4e-77328b0e05d1', {\n  partyId: '6878951b-256b-4baa-9e81-ad4c577adc4e',\n});\n\nconsole.log(card);",
      },
      python: {
        method: 'parties.cards.retrieve',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\ncard = client.parties.cards.retrieve(\n    card_id="d932902f-6832-4083-8c4e-77328b0e05d1",\n    party_id="6878951b-256b-4baa-9e81-ad4c577adc4e",\n)\nprint(card)',
      },
      java: {
        method: 'parties().cards().retrieve',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.parties.cards.CardRetrieveParams;\nimport com.plumery.api.models.parties.cards.CardRetrieveResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        CardRetrieveParams params = CardRetrieveParams.builder()\n            .partyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n            .cardId("d932902f-6832-4083-8c4e-77328b0e05d1")\n            .build();\n        CardRetrieveResponse card = client.parties().cards().retrieve(params);\n    }\n}',
      },
      kotlin: {
        method: 'parties().cards().retrieve',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.parties.cards.CardRetrieveParams\nimport com.plumery.api.models.parties.cards.CardRetrieveResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: CardRetrieveParams = CardRetrieveParams.builder()\n        .partyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n        .cardId("d932902f-6832-4083-8c4e-77328b0e05d1")\n        .build()\n    val card: CardRetrieveResponse = client.parties().cards().retrieve(params)\n}',
      },
      go: {
        method: 'client.Parties.Cards.Get',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tcard, err := client.Parties.Cards.Get(\n\t\tcontext.TODO(),\n\t\t"6878951b-256b-4baa-9e81-ad4c577adc4e",\n\t\t"d932902f-6832-4083-8c4e-77328b0e05d1",\n\t\tplumery.PartyCardGetParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", card)\n}\n',
      },
      cli: {
        method: 'cards retrieve',
        example:
          "plumery parties:cards retrieve \\\n  --session 'My Session' \\\n  --party-id 6878951b-256b-4baa-9e81-ad4c577adc4e \\\n  --card-id d932902f-6832-4083-8c4e-77328b0e05d1",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/parties/$PARTY_ID/cards/$CARD_ID \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'activate',
    endpoint: '/api/v1/parties/{partyId}/cards/{cardId}:activate',
    httpMethod: 'post',
    summary: 'Activate card',
    description: 'Activate a specific card.\n',
    stainlessPath: '(resource) parties.cards > (method) activate',
    qualified: 'client.parties.cards.activate',
    params: ['partyId: string;', 'cardId: string;', 'plmr-user-action?: boolean;', 'X-Request-ID?: string;'],
    response: "{ cardStatus: 'ACTIVE' | 'INACTIVE' | 'FROZEN' | 'TERMINATED' | 'EXPIRED'; }",
    markdown:
      "## activate\n\n`client.parties.cards.activate(partyId: string, cardId: string, plmr-user-action?: boolean, X-Request-ID?: string): { cardStatus: 'ACTIVE' | 'INACTIVE' | 'FROZEN' | 'TERMINATED' | 'EXPIRED'; }`\n\n**post** `/api/v1/parties/{partyId}/cards/{cardId}:activate`\n\nActivate a specific card.\n\n\n### Parameters\n\n- `partyId: string`\n\n- `cardId: string`\n  Unique identifier for the card.\n\n- `plmr-user-action?: boolean`\n\n- `X-Request-ID?: string`\n\n### Returns\n\n- `{ cardStatus: 'ACTIVE' | 'INACTIVE' | 'FROZEN' | 'TERMINATED' | 'EXPIRED'; }`\n  The card status that was updated\n\n  - `cardStatus: 'ACTIVE' | 'INACTIVE' | 'FROZEN' | 'TERMINATED' | 'EXPIRED'`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.parties.cards.activate('d932902f-6832-4083-8c4e-77328b0e05d1', { partyId: '6878951b-256b-4baa-9e81-ad4c577adc4e' });\n\nconsole.log(response);\n```",
    perLanguage: {
      typescript: {
        method: 'client.parties.cards.activate',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nconst response = await client.parties.cards.activate('d932902f-6832-4083-8c4e-77328b0e05d1', {\n  partyId: '6878951b-256b-4baa-9e81-ad4c577adc4e',\n});\n\nconsole.log(response.cardStatus);",
      },
      python: {
        method: 'parties.cards.activate',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nresponse = client.parties.cards.activate(\n    card_id="d932902f-6832-4083-8c4e-77328b0e05d1",\n    party_id="6878951b-256b-4baa-9e81-ad4c577adc4e",\n)\nprint(response.card_status)',
      },
      java: {
        method: 'parties().cards().activate',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.parties.cards.CardActivateParams;\nimport com.plumery.api.models.parties.cards.CardActivateResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        CardActivateParams params = CardActivateParams.builder()\n            .partyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n            .cardId("d932902f-6832-4083-8c4e-77328b0e05d1")\n            .build();\n        CardActivateResponse response = client.parties().cards().activate(params);\n    }\n}',
      },
      kotlin: {
        method: 'parties().cards().activate',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.parties.cards.CardActivateParams\nimport com.plumery.api.models.parties.cards.CardActivateResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: CardActivateParams = CardActivateParams.builder()\n        .partyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n        .cardId("d932902f-6832-4083-8c4e-77328b0e05d1")\n        .build()\n    val response: CardActivateResponse = client.parties().cards().activate(params)\n}',
      },
      go: {
        method: 'client.Parties.Cards.Activate',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tresponse, err := client.Parties.Cards.Activate(\n\t\tcontext.TODO(),\n\t\t"6878951b-256b-4baa-9e81-ad4c577adc4e",\n\t\t"d932902f-6832-4083-8c4e-77328b0e05d1",\n\t\tplumery.PartyCardActivateParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.CardStatus)\n}\n',
      },
      cli: {
        method: 'cards activate',
        example:
          "plumery parties:cards activate \\\n  --session 'My Session' \\\n  --party-id 6878951b-256b-4baa-9e81-ad4c577adc4e \\\n  --card-id d932902f-6832-4083-8c4e-77328b0e05d1",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/parties/$PARTY_ID/cards/$CARD_ID:activate \\\n    -X POST \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'updateAlias',
    endpoint: '/api/v1/parties/{partyId}/cards/{cardId}:update-alias',
    httpMethod: 'post',
    summary: 'Update alias',
    description: 'Update (or create if not exists) the card alias.\n',
    stainlessPath: '(resource) parties.cards > (method) updateAlias',
    qualified: 'client.parties.cards.updateAlias',
    params: [
      'partyId: string;',
      'cardId: string;',
      'alias: string;',
      'plmr-user-action?: boolean;',
      'X-Request-ID?: string;',
    ],
    response: '{ alias: string; }',
    markdown:
      "## updateAlias\n\n`client.parties.cards.updateAlias(partyId: string, cardId: string, alias: string, plmr-user-action?: boolean, X-Request-ID?: string): { alias: string; }`\n\n**post** `/api/v1/parties/{partyId}/cards/{cardId}:update-alias`\n\nUpdate (or create if not exists) the card alias.\n\n\n### Parameters\n\n- `partyId: string`\n\n- `cardId: string`\n  Unique identifier for the card.\n\n- `alias: string`\n  The card alias.\n\n- `plmr-user-action?: boolean`\n\n- `X-Request-ID?: string`\n\n### Returns\n\n- `{ alias: string; }`\n  The card alias that was updated\n\n  - `alias: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.parties.cards.updateAlias('d932902f-6832-4083-8c4e-77328b0e05d1', { partyId: '6878951b-256b-4baa-9e81-ad4c577adc4e', alias: 'Online Shopping' });\n\nconsole.log(response);\n```",
    perLanguage: {
      typescript: {
        method: 'client.parties.cards.updateAlias',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nconst response = await client.parties.cards.updateAlias('d932902f-6832-4083-8c4e-77328b0e05d1', {\n  partyId: '6878951b-256b-4baa-9e81-ad4c577adc4e',\n  alias: 'Online Shopping',\n});\n\nconsole.log(response.alias);",
      },
      python: {
        method: 'parties.cards.update_alias',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nresponse = client.parties.cards.update_alias(\n    card_id="d932902f-6832-4083-8c4e-77328b0e05d1",\n    party_id="6878951b-256b-4baa-9e81-ad4c577adc4e",\n    alias="Online Shopping",\n)\nprint(response.alias)',
      },
      java: {
        method: 'parties().cards().updateAlias',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.parties.cards.CardUpdateAliasParams;\nimport com.plumery.api.models.parties.cards.CardUpdateAliasResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        CardUpdateAliasParams params = CardUpdateAliasParams.builder()\n            .partyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n            .cardId("d932902f-6832-4083-8c4e-77328b0e05d1")\n            .alias("Online Shopping")\n            .build();\n        CardUpdateAliasResponse response = client.parties().cards().updateAlias(params);\n    }\n}',
      },
      kotlin: {
        method: 'parties().cards().updateAlias',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.parties.cards.CardUpdateAliasParams\nimport com.plumery.api.models.parties.cards.CardUpdateAliasResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: CardUpdateAliasParams = CardUpdateAliasParams.builder()\n        .partyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n        .cardId("d932902f-6832-4083-8c4e-77328b0e05d1")\n        .alias("Online Shopping")\n        .build()\n    val response: CardUpdateAliasResponse = client.parties().cards().updateAlias(params)\n}',
      },
      go: {
        method: 'client.Parties.Cards.UpdateAlias',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tresponse, err := client.Parties.Cards.UpdateAlias(\n\t\tcontext.TODO(),\n\t\t"6878951b-256b-4baa-9e81-ad4c577adc4e",\n\t\t"d932902f-6832-4083-8c4e-77328b0e05d1",\n\t\tplumery.PartyCardUpdateAliasParams{\n\t\t\tAlias: plumery.F("Online Shopping"),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.Alias)\n}\n',
      },
      cli: {
        method: 'cards updateAlias',
        example:
          "plumery parties:cards update-alias \\\n  --session 'My Session' \\\n  --party-id 6878951b-256b-4baa-9e81-ad4c577adc4e \\\n  --card-id d932902f-6832-4083-8c4e-77328b0e05d1 \\\n  --alias 'Online Shopping'",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/parties/$PARTY_ID/cards/$CARD_ID:update-alias \\\n    -H \'Content-Type: application/json\' \\\n    -H "Cookie: $SESSION" \\\n    -d \'{\n          "alias": "Online Shopping"\n        }\'',
      },
    },
  },
  {
    name: 'freeze',
    endpoint: '/api/v1/parties/{partyId}/cards/{cardId}:freeze',
    httpMethod: 'post',
    summary: 'Freeze card',
    description:
      'Freeze specific card associated with the party. Useful in scenarios like suspected fraudulent activities,\ncard is not actively used or when the cardholder misplaces the card.\n',
    stainlessPath: '(resource) parties.cards > (method) freeze',
    qualified: 'client.parties.cards.freeze',
    params: ['partyId: string;', 'cardId: string;', 'plmr-user-action?: boolean;', 'X-Request-ID?: string;'],
    response: "{ cardStatus: 'ACTIVE' | 'INACTIVE' | 'FROZEN' | 'TERMINATED' | 'EXPIRED'; }",
    markdown:
      "## freeze\n\n`client.parties.cards.freeze(partyId: string, cardId: string, plmr-user-action?: boolean, X-Request-ID?: string): { cardStatus: 'ACTIVE' | 'INACTIVE' | 'FROZEN' | 'TERMINATED' | 'EXPIRED'; }`\n\n**post** `/api/v1/parties/{partyId}/cards/{cardId}:freeze`\n\nFreeze specific card associated with the party. Useful in scenarios like suspected fraudulent activities,\ncard is not actively used or when the cardholder misplaces the card.\n\n\n### Parameters\n\n- `partyId: string`\n\n- `cardId: string`\n  Unique identifier for the card.\n\n- `plmr-user-action?: boolean`\n\n- `X-Request-ID?: string`\n\n### Returns\n\n- `{ cardStatus: 'ACTIVE' | 'INACTIVE' | 'FROZEN' | 'TERMINATED' | 'EXPIRED'; }`\n  The card status that was updated\n\n  - `cardStatus: 'ACTIVE' | 'INACTIVE' | 'FROZEN' | 'TERMINATED' | 'EXPIRED'`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.parties.cards.freeze('d932902f-6832-4083-8c4e-77328b0e05d1', { partyId: '6878951b-256b-4baa-9e81-ad4c577adc4e' });\n\nconsole.log(response);\n```",
    perLanguage: {
      typescript: {
        method: 'client.parties.cards.freeze',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nconst response = await client.parties.cards.freeze('d932902f-6832-4083-8c4e-77328b0e05d1', {\n  partyId: '6878951b-256b-4baa-9e81-ad4c577adc4e',\n});\n\nconsole.log(response.cardStatus);",
      },
      python: {
        method: 'parties.cards.freeze',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nresponse = client.parties.cards.freeze(\n    card_id="d932902f-6832-4083-8c4e-77328b0e05d1",\n    party_id="6878951b-256b-4baa-9e81-ad4c577adc4e",\n)\nprint(response.card_status)',
      },
      java: {
        method: 'parties().cards().freeze',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.parties.cards.CardFreezeParams;\nimport com.plumery.api.models.parties.cards.CardFreezeResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        CardFreezeParams params = CardFreezeParams.builder()\n            .partyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n            .cardId("d932902f-6832-4083-8c4e-77328b0e05d1")\n            .build();\n        CardFreezeResponse response = client.parties().cards().freeze(params);\n    }\n}',
      },
      kotlin: {
        method: 'parties().cards().freeze',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.parties.cards.CardFreezeParams\nimport com.plumery.api.models.parties.cards.CardFreezeResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: CardFreezeParams = CardFreezeParams.builder()\n        .partyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n        .cardId("d932902f-6832-4083-8c4e-77328b0e05d1")\n        .build()\n    val response: CardFreezeResponse = client.parties().cards().freeze(params)\n}',
      },
      go: {
        method: 'client.Parties.Cards.Freeze',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tresponse, err := client.Parties.Cards.Freeze(\n\t\tcontext.TODO(),\n\t\t"6878951b-256b-4baa-9e81-ad4c577adc4e",\n\t\t"d932902f-6832-4083-8c4e-77328b0e05d1",\n\t\tplumery.PartyCardFreezeParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.CardStatus)\n}\n',
      },
      cli: {
        method: 'cards freeze',
        example:
          "plumery parties:cards freeze \\\n  --session 'My Session' \\\n  --party-id 6878951b-256b-4baa-9e81-ad4c577adc4e \\\n  --card-id d932902f-6832-4083-8c4e-77328b0e05d1",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/parties/$PARTY_ID/cards/$CARD_ID:freeze \\\n    -X POST \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'unfreeze',
    endpoint: '/api/v1/parties/{partyId}/cards/{cardId}:unfreeze',
    httpMethod: 'post',
    summary: 'Unfreeze card',
    description: 'Unfreeze a specific card that was previously frozen.',
    stainlessPath: '(resource) parties.cards > (method) unfreeze',
    qualified: 'client.parties.cards.unfreeze',
    params: ['partyId: string;', 'cardId: string;', 'plmr-user-action?: boolean;', 'X-Request-ID?: string;'],
    response: "{ cardStatus: 'ACTIVE' | 'INACTIVE' | 'FROZEN' | 'TERMINATED' | 'EXPIRED'; }",
    markdown:
      "## unfreeze\n\n`client.parties.cards.unfreeze(partyId: string, cardId: string, plmr-user-action?: boolean, X-Request-ID?: string): { cardStatus: 'ACTIVE' | 'INACTIVE' | 'FROZEN' | 'TERMINATED' | 'EXPIRED'; }`\n\n**post** `/api/v1/parties/{partyId}/cards/{cardId}:unfreeze`\n\nUnfreeze a specific card that was previously frozen.\n\n### Parameters\n\n- `partyId: string`\n\n- `cardId: string`\n  Unique identifier for the card.\n\n- `plmr-user-action?: boolean`\n\n- `X-Request-ID?: string`\n\n### Returns\n\n- `{ cardStatus: 'ACTIVE' | 'INACTIVE' | 'FROZEN' | 'TERMINATED' | 'EXPIRED'; }`\n  The card status that was updated\n\n  - `cardStatus: 'ACTIVE' | 'INACTIVE' | 'FROZEN' | 'TERMINATED' | 'EXPIRED'`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.parties.cards.unfreeze('d932902f-6832-4083-8c4e-77328b0e05d1', { partyId: '6878951b-256b-4baa-9e81-ad4c577adc4e' });\n\nconsole.log(response);\n```",
    perLanguage: {
      typescript: {
        method: 'client.parties.cards.unfreeze',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nconst response = await client.parties.cards.unfreeze('d932902f-6832-4083-8c4e-77328b0e05d1', {\n  partyId: '6878951b-256b-4baa-9e81-ad4c577adc4e',\n});\n\nconsole.log(response.cardStatus);",
      },
      python: {
        method: 'parties.cards.unfreeze',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nresponse = client.parties.cards.unfreeze(\n    card_id="d932902f-6832-4083-8c4e-77328b0e05d1",\n    party_id="6878951b-256b-4baa-9e81-ad4c577adc4e",\n)\nprint(response.card_status)',
      },
      java: {
        method: 'parties().cards().unfreeze',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.parties.cards.CardUnfreezeParams;\nimport com.plumery.api.models.parties.cards.CardUnfreezeResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        CardUnfreezeParams params = CardUnfreezeParams.builder()\n            .partyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n            .cardId("d932902f-6832-4083-8c4e-77328b0e05d1")\n            .build();\n        CardUnfreezeResponse response = client.parties().cards().unfreeze(params);\n    }\n}',
      },
      kotlin: {
        method: 'parties().cards().unfreeze',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.parties.cards.CardUnfreezeParams\nimport com.plumery.api.models.parties.cards.CardUnfreezeResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: CardUnfreezeParams = CardUnfreezeParams.builder()\n        .partyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n        .cardId("d932902f-6832-4083-8c4e-77328b0e05d1")\n        .build()\n    val response: CardUnfreezeResponse = client.parties().cards().unfreeze(params)\n}',
      },
      go: {
        method: 'client.Parties.Cards.Unfreeze',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tresponse, err := client.Parties.Cards.Unfreeze(\n\t\tcontext.TODO(),\n\t\t"6878951b-256b-4baa-9e81-ad4c577adc4e",\n\t\t"d932902f-6832-4083-8c4e-77328b0e05d1",\n\t\tplumery.PartyCardUnfreezeParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.CardStatus)\n}\n',
      },
      cli: {
        method: 'cards unfreeze',
        example:
          "plumery parties:cards unfreeze \\\n  --session 'My Session' \\\n  --party-id 6878951b-256b-4baa-9e81-ad4c577adc4e \\\n  --card-id d932902f-6832-4083-8c4e-77328b0e05d1",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/parties/$PARTY_ID/cards/$CARD_ID:unfreeze \\\n    -X POST \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'terminate',
    endpoint: '/api/v1/parties/{partyId}/cards/{cardId}:terminate',
    httpMethod: 'post',
    summary: 'Terminate card',
    description:
      'Terminate a specific card no matter the current cart status. Once a card has been terminated, it can not be\nreinstated or unfrozen. A new card would need to be issued for the party after the termination.\n',
    stainlessPath: '(resource) parties.cards > (method) terminate',
    qualified: 'client.parties.cards.terminate',
    params: ['partyId: string;', 'cardId: string;', 'plmr-user-action?: boolean;', 'X-Request-ID?: string;'],
    response: "{ cardStatus: 'ACTIVE' | 'INACTIVE' | 'FROZEN' | 'TERMINATED' | 'EXPIRED'; }",
    markdown:
      "## terminate\n\n`client.parties.cards.terminate(partyId: string, cardId: string, plmr-user-action?: boolean, X-Request-ID?: string): { cardStatus: 'ACTIVE' | 'INACTIVE' | 'FROZEN' | 'TERMINATED' | 'EXPIRED'; }`\n\n**post** `/api/v1/parties/{partyId}/cards/{cardId}:terminate`\n\nTerminate a specific card no matter the current cart status. Once a card has been terminated, it can not be\nreinstated or unfrozen. A new card would need to be issued for the party after the termination.\n\n\n### Parameters\n\n- `partyId: string`\n\n- `cardId: string`\n  Unique identifier for the card.\n\n- `plmr-user-action?: boolean`\n\n- `X-Request-ID?: string`\n\n### Returns\n\n- `{ cardStatus: 'ACTIVE' | 'INACTIVE' | 'FROZEN' | 'TERMINATED' | 'EXPIRED'; }`\n  The card status that was updated\n\n  - `cardStatus: 'ACTIVE' | 'INACTIVE' | 'FROZEN' | 'TERMINATED' | 'EXPIRED'`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.parties.cards.terminate('d932902f-6832-4083-8c4e-77328b0e05d1', { partyId: '6878951b-256b-4baa-9e81-ad4c577adc4e' });\n\nconsole.log(response);\n```",
    perLanguage: {
      typescript: {
        method: 'client.parties.cards.terminate',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nconst response = await client.parties.cards.terminate('d932902f-6832-4083-8c4e-77328b0e05d1', {\n  partyId: '6878951b-256b-4baa-9e81-ad4c577adc4e',\n});\n\nconsole.log(response.cardStatus);",
      },
      python: {
        method: 'parties.cards.terminate',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nresponse = client.parties.cards.terminate(\n    card_id="d932902f-6832-4083-8c4e-77328b0e05d1",\n    party_id="6878951b-256b-4baa-9e81-ad4c577adc4e",\n)\nprint(response.card_status)',
      },
      java: {
        method: 'parties().cards().terminate',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.parties.cards.CardTerminateParams;\nimport com.plumery.api.models.parties.cards.CardTerminateResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        CardTerminateParams params = CardTerminateParams.builder()\n            .partyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n            .cardId("d932902f-6832-4083-8c4e-77328b0e05d1")\n            .build();\n        CardTerminateResponse response = client.parties().cards().terminate(params);\n    }\n}',
      },
      kotlin: {
        method: 'parties().cards().terminate',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.parties.cards.CardTerminateParams\nimport com.plumery.api.models.parties.cards.CardTerminateResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: CardTerminateParams = CardTerminateParams.builder()\n        .partyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n        .cardId("d932902f-6832-4083-8c4e-77328b0e05d1")\n        .build()\n    val response: CardTerminateResponse = client.parties().cards().terminate(params)\n}',
      },
      go: {
        method: 'client.Parties.Cards.Terminate',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tresponse, err := client.Parties.Cards.Terminate(\n\t\tcontext.TODO(),\n\t\t"6878951b-256b-4baa-9e81-ad4c577adc4e",\n\t\t"d932902f-6832-4083-8c4e-77328b0e05d1",\n\t\tplumery.PartyCardTerminateParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.CardStatus)\n}\n',
      },
      cli: {
        method: 'cards terminate',
        example:
          "plumery parties:cards terminate \\\n  --session 'My Session' \\\n  --party-id 6878951b-256b-4baa-9e81-ad4c577adc4e \\\n  --card-id d932902f-6832-4083-8c4e-77328b0e05d1",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/parties/$PARTY_ID/cards/$CARD_ID:terminate \\\n    -X POST \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'updateLimits',
    endpoint: '/api/v1/parties/{partyId}/cards/{cardId}:update-limits',
    httpMethod: 'post',
    summary: 'Update limits',
    description:
      'Update (or create if not exists) limits for the card. The existing limits will be replaced with the list provided.\n',
    stainlessPath: '(resource) parties.cards > (method) updateLimits',
    qualified: 'client.parties.cards.updateLimits',
    params: [
      'partyId: string;',
      'cardId: string;',
      "body?: { amount: string; type: 'ATM_WITHDRAWAL' | 'PURCHASE'; window: 'DAILY' | 'WEEKLY' | 'MONTHLY'; }[];",
      'plmr-user-action?: boolean;',
      'X-Request-ID?: string;',
    ],
    markdown:
      "## updateLimits\n\n`client.parties.cards.updateLimits(partyId: string, cardId: string, body?: { amount: string; type: 'ATM_WITHDRAWAL' | 'PURCHASE'; window: 'DAILY' | 'WEEKLY' | 'MONTHLY'; }[], plmr-user-action?: boolean, X-Request-ID?: string): void`\n\n**post** `/api/v1/parties/{partyId}/cards/{cardId}:update-limits`\n\nUpdate (or create if not exists) limits for the card. The existing limits will be replaced with the list provided.\n\n\n### Parameters\n\n- `partyId: string`\n\n- `cardId: string`\n  Unique identifier for the card.\n\n- `body?: { amount: string; type: 'ATM_WITHDRAWAL' | 'PURCHASE'; window: 'DAILY' | 'WEEKLY' | 'MONTHLY'; }[]`\n\n- `plmr-user-action?: boolean`\n\n- `X-Request-ID?: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nawait client.parties.cards.updateLimits('d932902f-6832-4083-8c4e-77328b0e05d1', { partyId: '6878951b-256b-4baa-9e81-ad4c577adc4e' })\n```",
    perLanguage: {
      typescript: {
        method: 'client.parties.cards.updateLimits',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nawait client.parties.cards.updateLimits('d932902f-6832-4083-8c4e-77328b0e05d1', {\n  partyId: '6878951b-256b-4baa-9e81-ad4c577adc4e',\n});",
      },
      python: {
        method: 'parties.cards.update_limits',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nclient.parties.cards.update_limits(\n    card_id="d932902f-6832-4083-8c4e-77328b0e05d1",\n    party_id="6878951b-256b-4baa-9e81-ad4c577adc4e",\n)',
      },
      java: {
        method: 'parties().cards().updateLimits',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.parties.cards.CardUpdateLimitsParams;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        CardUpdateLimitsParams params = CardUpdateLimitsParams.builder()\n            .partyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n            .cardId("d932902f-6832-4083-8c4e-77328b0e05d1")\n            .build();\n        client.parties().cards().updateLimits(params);\n    }\n}',
      },
      kotlin: {
        method: 'parties().cards().updateLimits',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.parties.cards.CardUpdateLimitsParams\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: CardUpdateLimitsParams = CardUpdateLimitsParams.builder()\n        .partyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n        .cardId("d932902f-6832-4083-8c4e-77328b0e05d1")\n        .build()\n    client.parties().cards().updateLimits(params)\n}',
      },
      go: {
        method: 'client.Parties.Cards.UpdateLimits',
        example:
          'package main\n\nimport (\n\t"context"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\terr := client.Parties.Cards.UpdateLimits(\n\t\tcontext.TODO(),\n\t\t"6878951b-256b-4baa-9e81-ad4c577adc4e",\n\t\t"d932902f-6832-4083-8c4e-77328b0e05d1",\n\t\tplumery.PartyCardUpdateLimitsParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
      },
      cli: {
        method: 'cards updateLimits',
        example:
          "plumery parties:cards update-limits \\\n  --session 'My Session' \\\n  --party-id 6878951b-256b-4baa-9e81-ad4c577adc4e \\\n  --card-id d932902f-6832-4083-8c4e-77328b0e05d1",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/parties/$PARTY_ID/cards/$CARD_ID:update-limits \\\n    -X POST \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'updateControls',
    endpoint: '/api/v1/parties/{partyId}/cards/{cardId}:update-controls',
    httpMethod: 'post',
    summary: 'Update controls',
    description: 'Update controls for the card.\n',
    stainlessPath: '(resource) parties.cards > (method) updateControls',
    qualified: 'client.parties.cards.updateControls',
    params: [
      'partyId: string;',
      'cardId: string;',
      'additionalAttributes?: object;',
      'atmWithdrawalsAllowed?: boolean;',
      'contactlessAllowed?: boolean;',
      'onlinePaymentsAllowed?: boolean;',
      'plmr-user-action?: boolean;',
      'X-Request-ID?: string;',
    ],
    markdown:
      "## updateControls\n\n`client.parties.cards.updateControls(partyId: string, cardId: string, additionalAttributes?: object, atmWithdrawalsAllowed?: boolean, contactlessAllowed?: boolean, onlinePaymentsAllowed?: boolean, plmr-user-action?: boolean, X-Request-ID?: string): void`\n\n**post** `/api/v1/parties/{partyId}/cards/{cardId}:update-controls`\n\nUpdate controls for the card.\n\n\n### Parameters\n\n- `partyId: string`\n\n- `cardId: string`\n  Unique identifier for the card.\n\n- `additionalAttributes?: object`\n  Free-form map of non-standard attributes.\n\n\n- `atmWithdrawalsAllowed?: boolean`\n  Indicates whether ATM cash withdrawals are permitted for the card. By default at card creation this is true.\n\n\n- `contactlessAllowed?: boolean`\n  Indicates whether contactless payments are permitted for the card. By default at card creation this is true.\n\n\n- `onlinePaymentsAllowed?: boolean`\n  Indicates whether online (e-commerce) payments are permitted for the card. By default at card creation this is true.\n\n\n- `plmr-user-action?: boolean`\n\n- `X-Request-ID?: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nawait client.parties.cards.updateControls('d932902f-6832-4083-8c4e-77328b0e05d1', { partyId: '6878951b-256b-4baa-9e81-ad4c577adc4e' })\n```",
    perLanguage: {
      typescript: {
        method: 'client.parties.cards.updateControls',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nawait client.parties.cards.updateControls('d932902f-6832-4083-8c4e-77328b0e05d1', {\n  partyId: '6878951b-256b-4baa-9e81-ad4c577adc4e',\n});",
      },
      python: {
        method: 'parties.cards.update_controls',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nclient.parties.cards.update_controls(\n    card_id="d932902f-6832-4083-8c4e-77328b0e05d1",\n    party_id="6878951b-256b-4baa-9e81-ad4c577adc4e",\n)',
      },
      java: {
        method: 'parties().cards().updateControls',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.parties.cards.CardUpdateControlsParams;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        CardUpdateControlsParams params = CardUpdateControlsParams.builder()\n            .partyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n            .cardId("d932902f-6832-4083-8c4e-77328b0e05d1")\n            .build();\n        client.parties().cards().updateControls(params);\n    }\n}',
      },
      kotlin: {
        method: 'parties().cards().updateControls',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.parties.cards.CardUpdateControlsParams\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: CardUpdateControlsParams = CardUpdateControlsParams.builder()\n        .partyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n        .cardId("d932902f-6832-4083-8c4e-77328b0e05d1")\n        .build()\n    client.parties().cards().updateControls(params)\n}',
      },
      go: {
        method: 'client.Parties.Cards.UpdateControls',
        example:
          'package main\n\nimport (\n\t"context"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\terr := client.Parties.Cards.UpdateControls(\n\t\tcontext.TODO(),\n\t\t"6878951b-256b-4baa-9e81-ad4c577adc4e",\n\t\t"d932902f-6832-4083-8c4e-77328b0e05d1",\n\t\tplumery.PartyCardUpdateControlsParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
      },
      cli: {
        method: 'cards updateControls',
        example:
          "plumery parties:cards update-controls \\\n  --session 'My Session' \\\n  --party-id 6878951b-256b-4baa-9e81-ad4c577adc4e \\\n  --card-id d932902f-6832-4083-8c4e-77328b0e05d1",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/parties/$PARTY_ID/cards/$CARD_ID:update-controls \\\n    -X POST \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'provisionGoogleWallet',
    endpoint: '/api/v1/parties/{partyId}/cards/{cardId}:provision-google-wallet',
    httpMethod: 'post',
    summary: 'Provision Google Wallet',
    description: 'Initiates the provisioning of a card to Google Wallet.\n',
    stainlessPath: '(resource) parties.cards > (method) provisionGoogleWallet',
    qualified: 'client.parties.cards.provisionGoogleWallet',
    params: [
      'partyId: string;',
      'cardId: string;',
      'deviceId: string;',
      "deviceType: 'MOBILE_PHONE' | 'TABLET' | 'WATCH';",
      'provisioningAppVersion: string;',
      'walletAccountId: string;',
      'stableHardwareId?: string;',
      'plmr-user-action?: boolean;',
      'X-Request-ID?: string;',
    ],
    response: '{ provisioningData: string; }',
    markdown:
      "## provisionGoogleWallet\n\n`client.parties.cards.provisionGoogleWallet(partyId: string, cardId: string, deviceId: string, deviceType: 'MOBILE_PHONE' | 'TABLET' | 'WATCH', provisioningAppVersion: string, walletAccountId: string, stableHardwareId?: string, plmr-user-action?: boolean, X-Request-ID?: string): { provisioningData: string; }`\n\n**post** `/api/v1/parties/{partyId}/cards/{cardId}:provision-google-wallet`\n\nInitiates the provisioning of a card to Google Wallet.\n\n\n### Parameters\n\n- `partyId: string`\n\n- `cardId: string`\n  Unique identifier for the card.\n\n- `deviceId: string`\n  Unique identifier of the user’s Google device. Must be between 1 and 24 characters.\n\n- `deviceType: 'MOBILE_PHONE' | 'TABLET' | 'WATCH'`\n  Type of device where the digital wallet token will be provisioned.\n\n- `provisioningAppVersion: string`\n  Version of the application initiating the provisioning request.\n\n- `walletAccountId: string`\n  The user's Google Wallet account ID, provided by Google during the provisioning process.\n\n- `stableHardwareId?: string`\n  A stable hardware identifier for the user's device, used to enhance security during provisioning.\n\n- `plmr-user-action?: boolean`\n\n- `X-Request-ID?: string`\n\n### Returns\n\n- `{ provisioningData: string; }`\n  The necessary details to complete the card provisioning.\n\n  - `provisioningData: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.parties.cards.provisionGoogleWallet('d932902f-6832-4083-8c4e-77328b0e05d1', {\n  partyId: '6878951b-256b-4baa-9e81-ad4c577adc4e',\n  deviceId: 'x',\n  deviceType: 'MOBILE_PHONE',\n  provisioningAppVersion: 'x',\n  walletAccountId: 'x',\n});\n\nconsole.log(response);\n```",
    perLanguage: {
      typescript: {
        method: 'client.parties.cards.provisionGoogleWallet',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nconst response = await client.parties.cards.provisionGoogleWallet(\n  'd932902f-6832-4083-8c4e-77328b0e05d1',\n  {\n    partyId: '6878951b-256b-4baa-9e81-ad4c577adc4e',\n    deviceId: 'x',\n    deviceType: 'MOBILE_PHONE',\n    provisioningAppVersion: 'x',\n    walletAccountId: 'x',\n  },\n);\n\nconsole.log(response.provisioningData);",
      },
      python: {
        method: 'parties.cards.provision_google_wallet',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nresponse = client.parties.cards.provision_google_wallet(\n    card_id="d932902f-6832-4083-8c4e-77328b0e05d1",\n    party_id="6878951b-256b-4baa-9e81-ad4c577adc4e",\n    device_id="x",\n    device_type="MOBILE_PHONE",\n    provisioning_app_version="x",\n    wallet_account_id="x",\n)\nprint(response.provisioning_data)',
      },
      java: {
        method: 'parties().cards().provisionGoogleWallet',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.parties.cards.CardProvisionGoogleWalletParams;\nimport com.plumery.api.models.parties.cards.CardProvisionGoogleWalletResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        CardProvisionGoogleWalletParams params = CardProvisionGoogleWalletParams.builder()\n            .partyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n            .cardId("d932902f-6832-4083-8c4e-77328b0e05d1")\n            .deviceId("x")\n            .deviceType(CardProvisionGoogleWalletParams.DeviceType.MOBILE_PHONE)\n            .provisioningAppVersion("x")\n            .walletAccountId("x")\n            .build();\n        CardProvisionGoogleWalletResponse response = client.parties().cards().provisionGoogleWallet(params);\n    }\n}',
      },
      kotlin: {
        method: 'parties().cards().provisionGoogleWallet',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.parties.cards.CardProvisionGoogleWalletParams\nimport com.plumery.api.models.parties.cards.CardProvisionGoogleWalletResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: CardProvisionGoogleWalletParams = CardProvisionGoogleWalletParams.builder()\n        .partyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n        .cardId("d932902f-6832-4083-8c4e-77328b0e05d1")\n        .deviceId("x")\n        .deviceType(CardProvisionGoogleWalletParams.DeviceType.MOBILE_PHONE)\n        .provisioningAppVersion("x")\n        .walletAccountId("x")\n        .build()\n    val response: CardProvisionGoogleWalletResponse = client.parties().cards().provisionGoogleWallet(params)\n}',
      },
      go: {
        method: 'client.Parties.Cards.ProvisionGoogleWallet',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tresponse, err := client.Parties.Cards.ProvisionGoogleWallet(\n\t\tcontext.TODO(),\n\t\t"6878951b-256b-4baa-9e81-ad4c577adc4e",\n\t\t"d932902f-6832-4083-8c4e-77328b0e05d1",\n\t\tplumery.PartyCardProvisionGoogleWalletParams{\n\t\t\tDeviceID:               plumery.F("x"),\n\t\t\tDeviceType:             plumery.F(plumery.PartyCardProvisionGoogleWalletParamsDeviceTypeMobilePhone),\n\t\t\tProvisioningAppVersion: plumery.F("x"),\n\t\t\tWalletAccountID:        plumery.F("x"),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.ProvisioningData)\n}\n',
      },
      cli: {
        method: 'cards provisionGoogleWallet',
        example:
          "plumery parties:cards provision-google-wallet \\\n  --session 'My Session' \\\n  --party-id 6878951b-256b-4baa-9e81-ad4c577adc4e \\\n  --card-id d932902f-6832-4083-8c4e-77328b0e05d1 \\\n  --device-id x \\\n  --device-type MOBILE_PHONE \\\n  --provisioning-app-version x \\\n  --wallet-account-id x",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/parties/$PARTY_ID/cards/$CARD_ID:provision-google-wallet \\\n    -H \'Content-Type: application/json\' \\\n    -H "Cookie: $SESSION" \\\n    -d \'{\n          "deviceId": "x",\n          "deviceType": "MOBILE_PHONE",\n          "provisioningAppVersion": "x",\n          "walletAccountId": "x"\n        }\'',
      },
    },
  },
  {
    name: 'provisionAppleWallet',
    endpoint: '/api/v1/parties/{partyId}/cards/{cardId}:provision-apple-wallet',
    httpMethod: 'post',
    summary: 'Provision Apple Wallet',
    description: 'Initiates the provisioning of a card to Apple Wallet.\n',
    stainlessPath: '(resource) parties.cards > (method) provisionAppleWallet',
    qualified: 'client.parties.cards.provisionAppleWallet',
    params: [
      'partyId: string;',
      'cardId: string;',
      'certificates: string[];',
      "deviceType: 'MOBILE_PHONE' | 'TABLET' | 'WATCH';",
      'nonce: string;',
      'nonceSignature: string;',
      'provisioningAppVersion: string;',
      'plmr-user-action?: boolean;',
      'X-Request-ID?: string;',
    ],
    response: '{ activationData: string; encryptedPassData: string; ephemeralPublicKey: string; }',
    markdown:
      "## provisionAppleWallet\n\n`client.parties.cards.provisionAppleWallet(partyId: string, cardId: string, certificates: string[], deviceType: 'MOBILE_PHONE' | 'TABLET' | 'WATCH', nonce: string, nonceSignature: string, provisioningAppVersion: string, plmr-user-action?: boolean, X-Request-ID?: string): { activationData: string; encryptedPassData: string; ephemeralPublicKey: string; }`\n\n**post** `/api/v1/parties/{partyId}/cards/{cardId}:provision-apple-wallet`\n\nInitiates the provisioning of a card to Apple Wallet.\n\n\n### Parameters\n\n- `partyId: string`\n\n- `cardId: string`\n  Unique identifier for the card.\n\n- `certificates: string[]`\n  An array of Base64-encoded certificates provided by Apple.\nThe first element must be the leaf certificate, followed by any subordinate CA certificates, in order.\n\n\n- `deviceType: 'MOBILE_PHONE' | 'TABLET' | 'WATCH'`\n  Type of device where the digital wallet token will be provisioned.\n\n- `nonce: string`\n  A one-time-use, Base64-encoded nonce provided by Apple for security purposes.\n\n- `nonceSignature: string`\n  A Base64-encoded signature of the nonce.\n\n- `provisioningAppVersion: string`\n  Version of the application initiating the provisioning request.\n\n- `plmr-user-action?: boolean`\n\n- `X-Request-ID?: string`\n\n### Returns\n\n- `{ activationData: string; encryptedPassData: string; ephemeralPublicKey: string; }`\n  The necessary details to complete the card provisioning.\n\n  - `activationData: string`\n  - `encryptedPassData: string`\n  - `ephemeralPublicKey: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.parties.cards.provisionAppleWallet('d932902f-6832-4083-8c4e-77328b0e05d1', {\n  partyId: '6878951b-256b-4baa-9e81-ad4c577adc4e',\n  certificates: ['string'],\n  deviceType: 'MOBILE_PHONE',\n  nonce: 'nonce',\n  nonceSignature: 'nonceSignature',\n  provisioningAppVersion: 'x',\n});\n\nconsole.log(response);\n```",
    perLanguage: {
      typescript: {
        method: 'client.parties.cards.provisionAppleWallet',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nconst response = await client.parties.cards.provisionAppleWallet(\n  'd932902f-6832-4083-8c4e-77328b0e05d1',\n  {\n    partyId: '6878951b-256b-4baa-9e81-ad4c577adc4e',\n    certificates: ['string'],\n    deviceType: 'MOBILE_PHONE',\n    nonce: 'nonce',\n    nonceSignature: 'nonceSignature',\n    provisioningAppVersion: 'x',\n  },\n);\n\nconsole.log(response.activationData);",
      },
      python: {
        method: 'parties.cards.provision_apple_wallet',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nresponse = client.parties.cards.provision_apple_wallet(\n    card_id="d932902f-6832-4083-8c4e-77328b0e05d1",\n    party_id="6878951b-256b-4baa-9e81-ad4c577adc4e",\n    certificates=["string"],\n    device_type="MOBILE_PHONE",\n    nonce="nonce",\n    nonce_signature="nonceSignature",\n    provisioning_app_version="x",\n)\nprint(response.activation_data)',
      },
      java: {
        method: 'parties().cards().provisionAppleWallet',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.parties.cards.CardProvisionAppleWalletParams;\nimport com.plumery.api.models.parties.cards.CardProvisionAppleWalletResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        CardProvisionAppleWalletParams params = CardProvisionAppleWalletParams.builder()\n            .partyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n            .cardId("d932902f-6832-4083-8c4e-77328b0e05d1")\n            .addCertificate("string")\n            .deviceType(CardProvisionAppleWalletParams.DeviceType.MOBILE_PHONE)\n            .nonce("nonce")\n            .nonceSignature("nonceSignature")\n            .provisioningAppVersion("x")\n            .build();\n        CardProvisionAppleWalletResponse response = client.parties().cards().provisionAppleWallet(params);\n    }\n}',
      },
      kotlin: {
        method: 'parties().cards().provisionAppleWallet',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.parties.cards.CardProvisionAppleWalletParams\nimport com.plumery.api.models.parties.cards.CardProvisionAppleWalletResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: CardProvisionAppleWalletParams = CardProvisionAppleWalletParams.builder()\n        .partyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n        .cardId("d932902f-6832-4083-8c4e-77328b0e05d1")\n        .addCertificate("string")\n        .deviceType(CardProvisionAppleWalletParams.DeviceType.MOBILE_PHONE)\n        .nonce("nonce")\n        .nonceSignature("nonceSignature")\n        .provisioningAppVersion("x")\n        .build()\n    val response: CardProvisionAppleWalletResponse = client.parties().cards().provisionAppleWallet(params)\n}',
      },
      go: {
        method: 'client.Parties.Cards.ProvisionAppleWallet',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tresponse, err := client.Parties.Cards.ProvisionAppleWallet(\n\t\tcontext.TODO(),\n\t\t"6878951b-256b-4baa-9e81-ad4c577adc4e",\n\t\t"d932902f-6832-4083-8c4e-77328b0e05d1",\n\t\tplumery.PartyCardProvisionAppleWalletParams{\n\t\t\tCertificates:           plumery.F([]string{"string"}),\n\t\t\tDeviceType:             plumery.F(plumery.PartyCardProvisionAppleWalletParamsDeviceTypeMobilePhone),\n\t\t\tNonce:                  plumery.F("nonce"),\n\t\t\tNonceSignature:         plumery.F("nonceSignature"),\n\t\t\tProvisioningAppVersion: plumery.F("x"),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.ActivationData)\n}\n',
      },
      cli: {
        method: 'cards provisionAppleWallet',
        example:
          "plumery parties:cards provision-apple-wallet \\\n  --session 'My Session' \\\n  --party-id 6878951b-256b-4baa-9e81-ad4c577adc4e \\\n  --card-id d932902f-6832-4083-8c4e-77328b0e05d1 \\\n  --certificate string \\\n  --device-type MOBILE_PHONE \\\n  --nonce nonce \\\n  --nonce-signature nonceSignature \\\n  --provisioning-app-version x",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/parties/$PARTY_ID/cards/$CARD_ID:provision-apple-wallet \\\n    -H \'Content-Type: application/json\' \\\n    -H "Cookie: $SESSION" \\\n    -d \'{\n          "certificates": [\n            "string"\n          ],\n          "deviceType": "MOBILE_PHONE",\n          "nonce": "nonce",\n          "nonceSignature": "nonceSignature",\n          "provisioningAppVersion": "x"\n        }\'',
      },
    },
  },
  {
    name: 'convertToPhysical',
    endpoint: '/api/v1/parties/{partyId}/cards/{cardId}:convert-to-physical',
    httpMethod: 'post',
    summary: 'Convert to physical card',
    description:
      'Initiates a conversion from a virtual card to a physical one. \nOnce it is completed, the card type is updated.\n',
    stainlessPath: '(resource) parties.cards > (method) convertToPhysical',
    qualified: 'client.parties.cards.convertToPhysical',
    params: [
      'partyId: string;',
      'cardId: string;',
      'shippingAddress: { buildingNumber: string; country: string; streetName: string; townName: string; buildingName?: string; countrySubDivision?: string; districtName?: string; floor?: string; postBox?: string; postCode?: string; suite?: string; townLocationName?: string; };',
      "shippingMethod: 'STANDARD' | 'EXPEDITE';",
      'customisation?: { colour?: string; designId?: string; text?: string; };',
      'productId?: string;',
      'plmr-user-action?: boolean;',
      'X-Request-ID?: string;',
    ],
    markdown:
      "## convertToPhysical\n\n`client.parties.cards.convertToPhysical(partyId: string, cardId: string, shippingAddress: { buildingNumber: string; country: string; streetName: string; townName: string; buildingName?: string; countrySubDivision?: string; districtName?: string; floor?: string; postBox?: string; postCode?: string; suite?: string; townLocationName?: string; }, shippingMethod: 'STANDARD' | 'EXPEDITE', customisation?: { colour?: string; designId?: string; text?: string; }, productId?: string, plmr-user-action?: boolean, X-Request-ID?: string): void`\n\n**post** `/api/v1/parties/{partyId}/cards/{cardId}:convert-to-physical`\n\nInitiates a conversion from a virtual card to a physical one. \nOnce it is completed, the card type is updated.\n\n\n### Parameters\n\n- `partyId: string`\n\n- `cardId: string`\n  Unique identifier for the card.\n\n- `shippingAddress: { buildingNumber: string; country: string; streetName: string; townName: string; buildingName?: string; countrySubDivision?: string; districtName?: string; floor?: string; postBox?: string; postCode?: string; suite?: string; townLocationName?: string; }`\n  - `buildingNumber: string`\n    Number that identifies the position of a building on a street\n\n  - `country: string`\n    Nation with its own government. ISO 3166, Alpha-2 code\n\n  - `streetName: string`\n    Name of a street or thoroughfare\n\n  - `townName: string`\n    Name of a built-up area, with defined boundaries, and a local government\n\n  - `buildingName?: string`\n    Name of the building or house\n\n  - `countrySubDivision?: string`\n    Identifies a subdivision of a country such as state, region, county\n\n  - `districtName?: string`\n    Identifies a subdivision within a country sub-division\n\n  - `floor?: string`\n    Floor or storey within a building\n\n  - `postBox?: string`\n    Numbered box in a post office, assigned to a person or organisation, where letters are kept until called for\n\n  - `postCode?: string`\n    Identifier consisting of a group of letters and/or numbers that is added to a postal address to assist the sorting of mail\n\n  - `suite?: string`\n    Building room number\n\n  - `townLocationName?: string`\n    Specific location name within the town\n\n\n- `shippingMethod: 'STANDARD' | 'EXPEDITE'`\n  The shipping method used to deliver the physical card. This is required for physical cards.\n\n- `customisation?: { colour?: string; designId?: string; text?: string; }`\n  The customisation to be applied on the card.\n  - `colour?: string`\n    The colour of the card as supported by the fulfilment provider.\n\n  - `designId?: string`\n    Unique identifier of the design to be applied on the card.\n  - `text?: string`\n    Custom text to be displayed on the card. Maximum of 21 characters allowed.\n\n\n- `productId?: string`\n  The product id value associated with the card. If none is provided, then the default product id for virtual cards will be used.\n\n\n- `plmr-user-action?: boolean`\n\n- `X-Request-ID?: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nawait client.parties.cards.convertToPhysical('d932902f-6832-4083-8c4e-77328b0e05d1', {\n  partyId: '6878951b-256b-4baa-9e81-ad4c577adc4e',\n  shippingAddress: {\n  buildingNumber: '123',\n  country: 'US',\n  streetName: 'Main St',\n  townName: 'New York',\n},\n  shippingMethod: 'EXPEDITE',\n})\n```",
    perLanguage: {
      typescript: {
        method: 'client.parties.cards.convertToPhysical',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nawait client.parties.cards.convertToPhysical('d932902f-6832-4083-8c4e-77328b0e05d1', {\n  partyId: '6878951b-256b-4baa-9e81-ad4c577adc4e',\n  shippingAddress: {\n    buildingNumber: '123',\n    country: 'US',\n    streetName: 'Main St',\n    townName: 'New York',\n  },\n  shippingMethod: 'EXPEDITE',\n});",
      },
      python: {
        method: 'parties.cards.convert_to_physical',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nclient.parties.cards.convert_to_physical(\n    card_id="d932902f-6832-4083-8c4e-77328b0e05d1",\n    party_id="6878951b-256b-4baa-9e81-ad4c577adc4e",\n    shipping_address={\n        "building_number": "123",\n        "country": "US",\n        "street_name": "Main St",\n        "town_name": "New York",\n    },\n    shipping_method="EXPEDITE",\n)',
      },
      java: {
        method: 'parties().cards().convertToPhysical',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.parties.cards.CardConvertToPhysicalParams;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        CardConvertToPhysicalParams params = CardConvertToPhysicalParams.builder()\n            .partyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n            .cardId("d932902f-6832-4083-8c4e-77328b0e05d1")\n            .shippingAddress(CardConvertToPhysicalParams.ShippingAddress.builder()\n                .buildingNumber("123")\n                .country("US")\n                .streetName("Main St")\n                .townName("New York")\n                .build())\n            .shippingMethod(CardConvertToPhysicalParams.ShippingMethod.EXPEDITE)\n            .build();\n        client.parties().cards().convertToPhysical(params);\n    }\n}',
      },
      kotlin: {
        method: 'parties().cards().convertToPhysical',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.parties.cards.CardConvertToPhysicalParams\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: CardConvertToPhysicalParams = CardConvertToPhysicalParams.builder()\n        .partyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n        .cardId("d932902f-6832-4083-8c4e-77328b0e05d1")\n        .shippingAddress(CardConvertToPhysicalParams.ShippingAddress.builder()\n            .buildingNumber("123")\n            .country("US")\n            .streetName("Main St")\n            .townName("New York")\n            .build())\n        .shippingMethod(CardConvertToPhysicalParams.ShippingMethod.EXPEDITE)\n        .build()\n    client.parties().cards().convertToPhysical(params)\n}',
      },
      go: {
        method: 'client.Parties.Cards.ConvertToPhysical',
        example:
          'package main\n\nimport (\n\t"context"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\terr := client.Parties.Cards.ConvertToPhysical(\n\t\tcontext.TODO(),\n\t\t"6878951b-256b-4baa-9e81-ad4c577adc4e",\n\t\t"d932902f-6832-4083-8c4e-77328b0e05d1",\n\t\tplumery.PartyCardConvertToPhysicalParams{\n\t\t\tShippingAddress: plumery.F(plumery.PartyCardConvertToPhysicalParamsShippingAddress{\n\t\t\t\tBuildingNumber: plumery.F("123"),\n\t\t\t\tCountry:        plumery.F("US"),\n\t\t\t\tStreetName:     plumery.F("Main St"),\n\t\t\t\tTownName:       plumery.F("New York"),\n\t\t\t}),\n\t\t\tShippingMethod: plumery.F(plumery.PartyCardConvertToPhysicalParamsShippingMethodExpedite),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
      },
      cli: {
        method: 'cards convertToPhysical',
        example:
          "plumery parties:cards convert-to-physical \\\n  --session 'My Session' \\\n  --party-id 6878951b-256b-4baa-9e81-ad4c577adc4e \\\n  --card-id d932902f-6832-4083-8c4e-77328b0e05d1 \\\n  --shipping-address \"{buildingNumber: '123', country: US, streetName: Main St, townName: New York}\" \\\n  --shipping-method EXPEDITE",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/parties/$PARTY_ID/cards/$CARD_ID:convert-to-physical \\\n    -H \'Content-Type: application/json\' \\\n    -H "Cookie: $SESSION" \\\n    -d \'{\n          "shippingAddress": {\n            "buildingNumber": "123",\n            "country": "US",\n            "streetName": "Main St",\n            "townName": "New York"\n          },\n          "shippingMethod": "EXPEDITE",\n          "productId": "abc123"\n        }\'',
      },
    },
  },
  {
    name: 'retrieve',
    endpoint: '/api/v1/parties/{partyId}/cards/{cardId}/pin',
    httpMethod: 'get',
    summary: 'Get Card Pin',
    description: 'Get pin code of a specific card.\n',
    stainlessPath: '(resource) parties.cards.pin > (method) retrieve',
    qualified: 'client.parties.cards.pin.retrieve',
    params: [
      'partyId: string;',
      'cardId: string;',
      'X-Client-Public-Key: string;',
      'plmr-mfa-challenge-id?: string;',
      'plmr-mfa-signature?: string;',
      'plmr-user-action?: boolean;',
      'X-Device-Integrity-Token?: string;',
      'X-Request-ID?: string;',
    ],
    response:
      '{ encryptedPayload: { encryptedData: string; iv: string; salt: string; serverPublicKey: string; }; }',
    markdown:
      "## retrieve\n\n`client.parties.cards.pin.retrieve(partyId: string, cardId: string, X-Client-Public-Key: string, plmr-mfa-challenge-id?: string, plmr-mfa-signature?: string, plmr-user-action?: boolean, X-Device-Integrity-Token?: string, X-Request-ID?: string): { encryptedPayload: object; }`\n\n**get** `/api/v1/parties/{partyId}/cards/{cardId}/pin`\n\nGet pin code of a specific card.\n\n\n### Parameters\n\n- `partyId: string`\n\n- `cardId: string`\n  Unique identifier for the card.\n\n- `X-Client-Public-Key: string`\n\n- `plmr-mfa-challenge-id?: string`\n\n- `plmr-mfa-signature?: string`\n\n- `plmr-user-action?: boolean`\n\n- `X-Device-Integrity-Token?: string`\n\n- `X-Request-ID?: string`\n\n### Returns\n\n- `{ encryptedPayload: { encryptedData: string; iv: string; salt: string; serverPublicKey: string; }; }`\n  The card PIN is encrypted in the `encryptedPayload` field.\n\nAfter decryption, the JSON structure will conform to `DecryptedCardPin` structure.\n\n\n  - `encryptedPayload: { encryptedData: string; iv: string; salt: string; serverPublicKey: string; }`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst pin = await client.parties.cards.pin.retrieve('d932902f-6832-4083-8c4e-77328b0e05d1', { partyId: '6878951b-256b-4baa-9e81-ad4c577adc4e', 'X-Client-Public-Key': '+/+K==w2k+1v' });\n\nconsole.log(pin);\n```",
    perLanguage: {
      typescript: {
        method: 'client.parties.cards.pin.retrieve',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nconst pin = await client.parties.cards.pin.retrieve('d932902f-6832-4083-8c4e-77328b0e05d1', {\n  partyId: '6878951b-256b-4baa-9e81-ad4c577adc4e',\n  'X-Client-Public-Key': '+/+K==w2k+1v',\n});\n\nconsole.log(pin.encryptedPayload);",
      },
      python: {
        method: 'parties.cards.pin.retrieve',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\npin = client.parties.cards.pin.retrieve(\n    card_id="d932902f-6832-4083-8c4e-77328b0e05d1",\n    party_id="6878951b-256b-4baa-9e81-ad4c577adc4e",\n    x_client_public_key="+/+K==w2k+1v",\n)\nprint(pin.encrypted_payload)',
      },
      java: {
        method: 'parties().cards().pin().retrieve',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.parties.cards.pin.PinRetrieveParams;\nimport com.plumery.api.models.parties.cards.pin.PinRetrieveResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        PinRetrieveParams params = PinRetrieveParams.builder()\n            .partyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n            .cardId("d932902f-6832-4083-8c4e-77328b0e05d1")\n            .xClientPublicKey("+/+K==w2k+1v")\n            .build();\n        PinRetrieveResponse pin = client.parties().cards().pin().retrieve(params);\n    }\n}',
      },
      kotlin: {
        method: 'parties().cards().pin().retrieve',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.parties.cards.pin.PinRetrieveParams\nimport com.plumery.api.models.parties.cards.pin.PinRetrieveResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: PinRetrieveParams = PinRetrieveParams.builder()\n        .partyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n        .cardId("d932902f-6832-4083-8c4e-77328b0e05d1")\n        .xClientPublicKey("+/+K==w2k+1v")\n        .build()\n    val pin: PinRetrieveResponse = client.parties().cards().pin().retrieve(params)\n}',
      },
      go: {
        method: 'client.Parties.Cards.Pin.Get',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tpin, err := client.Parties.Cards.Pin.Get(\n\t\tcontext.TODO(),\n\t\t"6878951b-256b-4baa-9e81-ad4c577adc4e",\n\t\t"d932902f-6832-4083-8c4e-77328b0e05d1",\n\t\tplumery.PartyCardPinGetParams{\n\t\t\tXClientPublicKey: plumery.F("+/+K==w2k+1v"),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", pin.EncryptedPayload)\n}\n',
      },
      cli: {
        method: 'pin retrieve',
        example:
          "plumery parties:cards:pin retrieve \\\n  --session 'My Session' \\\n  --party-id 6878951b-256b-4baa-9e81-ad4c577adc4e \\\n  --card-id d932902f-6832-4083-8c4e-77328b0e05d1 \\\n  --x-client-public-key '+/+K==w2k+1v'",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/parties/$PARTY_ID/cards/$CARD_ID/pin \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'generate',
    endpoint: '/api/v1/parties/{partyId}/quotes:generate',
    httpMethod: 'post',
    summary: 'Generate Currency Exchange Quote',
    description:
      'Generates a currency exchange quote between specified currencies.\n\nDepending on the backend integration with the currency exchange provider, the option to lock in a currency rate \nmay be enabled. If enabled, the response will include:\n\n- **quoteId**: An identifier for the generated quote.\n- **expirationDateTime**: The expiration date and time for the locked rate.\n',
    stainlessPath: '(resource) parties.quotes > (method) generate',
    qualified: 'client.parties.quotes.generate',
    params: [
      'partyId: string;',
      'amount: string;',
      'creditCurrency: string;',
      'debitCurrency: string;',
      "fixedAmountSide: 'DEBIT' | 'CREDIT';",
      'plmr-user-action?: boolean;',
      'X-Request-ID?: string;',
    ],
    response:
      '{ creditAmount: { amount: string; currency: string; }; debitAmount: { amount: string; currency: string; }; rate: number; rateDateTime: string; feeAmount?: { amount: string; currency: string; }; } | { creditAmount: { amount: string; currency: string; }; debitAmount: { amount: string; currency: string; }; expirationDateTime: string; quoteId: string; rate: number; rateDateTime: string; feeAmount?: { amount: string; currency: string; }; }',
    markdown:
      "## generate\n\n`client.parties.quotes.generate(partyId: string, amount: string, creditCurrency: string, debitCurrency: string, fixedAmountSide: 'DEBIT' | 'CREDIT', plmr-user-action?: boolean, X-Request-ID?: string): { creditAmount: object; debitAmount: object; rate: number; rateDateTime: string; feeAmount?: object; } | { creditAmount: object; debitAmount: object; expirationDateTime: string; quoteId: string; rate: number; rateDateTime: string; feeAmount?: object; }`\n\n**post** `/api/v1/parties/{partyId}/quotes:generate`\n\nGenerates a currency exchange quote between specified currencies.\n\nDepending on the backend integration with the currency exchange provider, the option to lock in a currency rate \nmay be enabled. If enabled, the response will include:\n\n- **quoteId**: An identifier for the generated quote.\n- **expirationDateTime**: The expiration date and time for the locked rate.\n\n\n### Parameters\n\n- `partyId: string`\n\n- `amount: string`\n  The amount given with fractional digits, where fractions must be compliant to the currency definition.\nUp to 14 significant figures. Negative amounts are signed by minus.\nThe decimal separator is a dot.\n\n**Example:**\nValid representations for EUR with up to two decimals are:\n\n  * 1056\n  * 5768.2\n  * -1.50\n  * 5877.78\n\n\n- `creditCurrency: string`\n  ISO 4217 Alpha 3 currency code.\n\n\n- `debitCurrency: string`\n  ISO 4217 Alpha 3 currency code.\n\n\n- `fixedAmountSide: 'DEBIT' | 'CREDIT'`\n  Indicates which amount is fixed during the currency conversion:\n- `DEBIT` keeps the debit amount fixed\n- `CREDIT` keeps the credit amount fixed,\n\nadjusting the other side based on the exchange rate.\n\n- `plmr-user-action?: boolean`\n\n- `X-Request-ID?: string`\n\n### Returns\n\n- `{ creditAmount: { amount: string; currency: string; }; debitAmount: { amount: string; currency: string; }; rate: number; rateDateTime: string; feeAmount?: { amount: string; currency: string; }; } | { creditAmount: { amount: string; currency: string; }; debitAmount: { amount: string; currency: string; }; expirationDateTime: string; quoteId: string; rate: number; rateDateTime: string; feeAmount?: { amount: string; currency: string; }; }`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.parties.quotes.generate('6878951b-256b-4baa-9e81-ad4c577adc4e', {\n  amount: '5877.78',\n  creditCurrency: 'EUR',\n  debitCurrency: 'EUR',\n  fixedAmountSide: 'DEBIT',\n});\n\nconsole.log(response);\n```",
    perLanguage: {
      typescript: {
        method: 'client.parties.quotes.generate',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nconst response = await client.parties.quotes.generate('6878951b-256b-4baa-9e81-ad4c577adc4e', {\n  amount: '5877.78',\n  creditCurrency: 'EUR',\n  debitCurrency: 'EUR',\n  fixedAmountSide: 'DEBIT',\n});\n\nconsole.log(response);",
      },
      python: {
        method: 'parties.quotes.generate',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nresponse = client.parties.quotes.generate(\n    party_id="6878951b-256b-4baa-9e81-ad4c577adc4e",\n    amount="5877.78",\n    credit_currency="EUR",\n    debit_currency="EUR",\n    fixed_amount_side="DEBIT",\n)\nprint(response)',
      },
      java: {
        method: 'parties().quotes().generate',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.parties.quotes.QuoteGenerateParams;\nimport com.plumery.api.models.parties.quotes.QuoteGenerateResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        QuoteGenerateParams params = QuoteGenerateParams.builder()\n            .partyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n            .amount("5877.78")\n            .creditCurrency("EUR")\n            .debitCurrency("EUR")\n            .fixedAmountSide(QuoteGenerateParams.FixedAmountSide.DEBIT)\n            .build();\n        QuoteGenerateResponse response = client.parties().quotes().generate(params);\n    }\n}',
      },
      kotlin: {
        method: 'parties().quotes().generate',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.parties.quotes.QuoteGenerateParams\nimport com.plumery.api.models.parties.quotes.QuoteGenerateResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: QuoteGenerateParams = QuoteGenerateParams.builder()\n        .partyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n        .amount("5877.78")\n        .creditCurrency("EUR")\n        .debitCurrency("EUR")\n        .fixedAmountSide(QuoteGenerateParams.FixedAmountSide.DEBIT)\n        .build()\n    val response: QuoteGenerateResponse = client.parties().quotes().generate(params)\n}',
      },
      go: {
        method: 'client.Parties.Quotes.Generate',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tresponse, err := client.Parties.Quotes.Generate(\n\t\tcontext.TODO(),\n\t\t"6878951b-256b-4baa-9e81-ad4c577adc4e",\n\t\tplumery.PartyQuoteGenerateParams{\n\t\t\tAmount:          plumery.F("5877.78"),\n\t\t\tCreditCurrency:  plumery.F("EUR"),\n\t\t\tDebitCurrency:   plumery.F("EUR"),\n\t\t\tFixedAmountSide: plumery.F(plumery.PartyQuoteGenerateParamsFixedAmountSideDebit),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response)\n}\n',
      },
      cli: {
        method: 'quotes generate',
        example:
          "plumery parties:quotes generate \\\n  --session 'My Session' \\\n  --party-id 6878951b-256b-4baa-9e81-ad4c577adc4e \\\n  --amount 5877.78 \\\n  --credit-currency EUR \\\n  --debit-currency EUR \\\n  --fixed-amount-side DEBIT",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/parties/$PARTY_ID/quotes:generate \\\n    -H \'Content-Type: application/json\' \\\n    -H "Cookie: $SESSION" \\\n    -d \'{\n          "amount": "5877.78",\n          "creditCurrency": "EUR",\n          "debitCurrency": "EUR",\n          "fixedAmountSide": "DEBIT"\n        }\'',
      },
    },
  },
  {
    name: 'create',
    endpoint: '/api/v1/parties/{partyId}/funds-transfers',
    httpMethod: 'post',
    summary: 'Transfer Funds',
    description:
      "Transfer funds between the party-owned accounts.\nThe operation might involve a currency conversion, depending on the accounts' currencies.\n\n### Currency Exchange\nIf the transfer involves different currencies, `currencyExchange` object must be specified. \n`fixedAmountSide` parameter is required to determine which amount (debit or credit) remains fixed during the \ncurrency exchange:\n\n- **DEBIT**: The debit amount is fixed.\n- **CREDIT**: The credit amount is fixed.\n\nBased on the provided `fixedAmountSide`, the other amount will be adjusted according to the exchange rate.\n\n**Note**: If the transfer involves different currencies and `fixedAmountSide` is not provided, the operation \nwill be rejected asynchronously.\n",
    stainlessPath: '(resource) parties.funds-transfers > (method) create',
    qualified: 'client.parties.fundsTransfers.create',
    params: [
      'partyId: string;',
      'creditAccount: { accountId: string; currency: string; };',
      'debitAccount: { accountId: string; currency: string; };',
      'instructedAmount: { amount: string; currency: string; };',
      "currencyExchange?: { fixedAmountSide: 'DEBIT' | 'CREDIT'; quoteId?: string; };",
      'reference?: string;',
      'plmr-user-action?: boolean;',
      'X-Request-ID?: string;',
    ],
    response: '{ fundsTransferId: string; }',
    markdown:
      "## create\n\n`client.parties.fundsTransfers.create(partyId: string, creditAccount: { accountId: string; currency: string; }, debitAccount: { accountId: string; currency: string; }, instructedAmount: { amount: string; currency: string; }, currencyExchange?: { fixedAmountSide: 'DEBIT' | 'CREDIT'; quoteId?: string; }, reference?: string, plmr-user-action?: boolean, X-Request-ID?: string): { fundsTransferId: string; }`\n\n**post** `/api/v1/parties/{partyId}/funds-transfers`\n\nTransfer funds between the party-owned accounts.\nThe operation might involve a currency conversion, depending on the accounts' currencies.\n\n### Currency Exchange\nIf the transfer involves different currencies, `currencyExchange` object must be specified. \n`fixedAmountSide` parameter is required to determine which amount (debit or credit) remains fixed during the \ncurrency exchange:\n\n- **DEBIT**: The debit amount is fixed.\n- **CREDIT**: The credit amount is fixed.\n\nBased on the provided `fixedAmountSide`, the other amount will be adjusted according to the exchange rate.\n\n**Note**: If the transfer involves different currencies and `fixedAmountSide` is not provided, the operation \nwill be rejected asynchronously.\n\n\n### Parameters\n\n- `partyId: string`\n\n- `creditAccount: { accountId: string; currency: string; }`\n  Details of the account to which the amount will be credited.\n  - `accountId: string`\n    The ID of the account that will be credited.\n  - `currency: string`\n    ISO 4217 Alpha 3 currency code.\n\n\n- `debitAccount: { accountId: string; currency: string; }`\n  Details of the account from which the amount will be debited.\n  - `accountId: string`\n    The ID of the account that will be debited.\n  - `currency: string`\n    ISO 4217 Alpha 3 currency code.\n\n\n- `instructedAmount: { amount: string; currency: string; }`\n  - `amount: string`\n    The amount given with fractional digits, where fractions must be compliant to the currency definition.\nUp to 14 significant figures. Negative amounts are signed by minus.\nThe decimal separator is a dot.\n\n**Example:**\nValid representations for EUR with up to two decimals are:\n\n  * 1056\n  * 5768.2\n  * -1.50\n  * 5877.78\n\n  - `currency: string`\n    ISO 4217 Alpha 3 currency code.\n\n\n- `currencyExchange?: { fixedAmountSide: 'DEBIT' | 'CREDIT'; quoteId?: string; }`\n  Currency exchange details if the transfer involves different currencies.\n  - `fixedAmountSide: 'DEBIT' | 'CREDIT'`\n    Indicates which amount is fixed during the currency conversion:\n- `DEBIT` keeps the debit amount fixed\n- `CREDIT` keeps the credit amount fixed,\n\nadjusting the other side based on the exchange rate.\n  - `quoteId?: string`\n    The ID of the currency exchange quote to be used during currency exchange. If provided, the quote must \nbe valid and not expired.\n\n\n- `reference?: string`\n  A reference for the transfer.\n\n- `plmr-user-action?: boolean`\n\n- `X-Request-ID?: string`\n\n### Returns\n\n- `{ fundsTransferId: string; }`\n  Acknowledgement of an accepted funds transfer request.\n\n  - `fundsTransferId: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst fundsTransfer = await client.parties.fundsTransfers.create('6878951b-256b-4baa-9e81-ad4c577adc4e', {\n  creditAccount: { accountId: '3dc3d5b3-7023-4848-9853-f5400a64e80f', currency: 'EUR' },\n  debitAccount: { accountId: '4ec4e5f6-1124-5678-abcd-1234567890ef', currency: 'EUR' },\n  instructedAmount: { amount: '5877.78', currency: 'EUR' },\n});\n\nconsole.log(fundsTransfer);\n```",
    perLanguage: {
      typescript: {
        method: 'client.parties.fundsTransfers.create',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nconst fundsTransfer = await client.parties.fundsTransfers.create(\n  '6878951b-256b-4baa-9e81-ad4c577adc4e',\n  {\n    creditAccount: { accountId: '3dc3d5b3-7023-4848-9853-f5400a64e80f', currency: 'EUR' },\n    debitAccount: { accountId: '4ec4e5f6-1124-5678-abcd-1234567890ef', currency: 'EUR' },\n    instructedAmount: { amount: '5877.78', currency: 'EUR' },\n  },\n);\n\nconsole.log(fundsTransfer.fundsTransferId);",
      },
      python: {
        method: 'parties.funds_transfers.create',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nfunds_transfer = client.parties.funds_transfers.create(\n    party_id="6878951b-256b-4baa-9e81-ad4c577adc4e",\n    credit_account={\n        "account_id": "3dc3d5b3-7023-4848-9853-f5400a64e80f",\n        "currency": "EUR",\n    },\n    debit_account={\n        "account_id": "4ec4e5f6-1124-5678-abcd-1234567890ef",\n        "currency": "EUR",\n    },\n    instructed_amount={\n        "amount": "5877.78",\n        "currency": "EUR",\n    },\n)\nprint(funds_transfer.funds_transfer_id)',
      },
      java: {
        method: 'parties().fundsTransfers().create',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.parties.fundstransfers.FundsTransferCreateParams;\nimport com.plumery.api.models.parties.fundstransfers.FundsTransferCreateResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        FundsTransferCreateParams params = FundsTransferCreateParams.builder()\n            .partyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n            .creditAccount(FundsTransferCreateParams.CreditAccount.builder()\n                .accountId("3dc3d5b3-7023-4848-9853-f5400a64e80f")\n                .currency("EUR")\n                .build())\n            .debitAccount(FundsTransferCreateParams.DebitAccount.builder()\n                .accountId("4ec4e5f6-1124-5678-abcd-1234567890ef")\n                .currency("EUR")\n                .build())\n            .instructedAmount(FundsTransferCreateParams.InstructedAmount.builder()\n                .amount("5877.78")\n                .currency("EUR")\n                .build())\n            .build();\n        FundsTransferCreateResponse fundsTransfer = client.parties().fundsTransfers().create(params);\n    }\n}',
      },
      kotlin: {
        method: 'parties().fundsTransfers().create',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.parties.fundstransfers.FundsTransferCreateParams\nimport com.plumery.api.models.parties.fundstransfers.FundsTransferCreateResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: FundsTransferCreateParams = FundsTransferCreateParams.builder()\n        .partyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n        .creditAccount(FundsTransferCreateParams.CreditAccount.builder()\n            .accountId("3dc3d5b3-7023-4848-9853-f5400a64e80f")\n            .currency("EUR")\n            .build())\n        .debitAccount(FundsTransferCreateParams.DebitAccount.builder()\n            .accountId("4ec4e5f6-1124-5678-abcd-1234567890ef")\n            .currency("EUR")\n            .build())\n        .instructedAmount(FundsTransferCreateParams.InstructedAmount.builder()\n            .amount("5877.78")\n            .currency("EUR")\n            .build())\n        .build()\n    val fundsTransfer: FundsTransferCreateResponse = client.parties().fundsTransfers().create(params)\n}',
      },
      go: {
        method: 'client.Parties.FundsTransfers.New',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tfundsTransfer, err := client.Parties.FundsTransfers.New(\n\t\tcontext.TODO(),\n\t\t"6878951b-256b-4baa-9e81-ad4c577adc4e",\n\t\tplumery.PartyFundsTransferNewParams{\n\t\t\tCreditAccount: plumery.F(plumery.PartyFundsTransferNewParamsCreditAccount{\n\t\t\t\tAccountID: plumery.F("3dc3d5b3-7023-4848-9853-f5400a64e80f"),\n\t\t\t\tCurrency:  plumery.F("EUR"),\n\t\t\t}),\n\t\t\tDebitAccount: plumery.F(plumery.PartyFundsTransferNewParamsDebitAccount{\n\t\t\t\tAccountID: plumery.F("4ec4e5f6-1124-5678-abcd-1234567890ef"),\n\t\t\t\tCurrency:  plumery.F("EUR"),\n\t\t\t}),\n\t\t\tInstructedAmount: plumery.F(plumery.PartyFundsTransferNewParamsInstructedAmount{\n\t\t\t\tAmount:   plumery.F("5877.78"),\n\t\t\t\tCurrency: plumery.F("EUR"),\n\t\t\t}),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", fundsTransfer.FundsTransferID)\n}\n',
      },
      cli: {
        method: 'funds-transfers create',
        example:
          "plumery parties:funds-transfers create \\\n  --session 'My Session' \\\n  --party-id 6878951b-256b-4baa-9e81-ad4c577adc4e \\\n  --credit-account '{accountId: 3dc3d5b3-7023-4848-9853-f5400a64e80f, currency: EUR}' \\\n  --debit-account '{accountId: 4ec4e5f6-1124-5678-abcd-1234567890ef, currency: EUR}' \\\n  --instructed-amount \"{amount: '5877.78', currency: EUR}\"",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/parties/$PARTY_ID/funds-transfers \\\n    -H \'Content-Type: application/json\' \\\n    -H "Cookie: $SESSION" \\\n    -d \'{\n          "creditAccount": {\n            "accountId": "3dc3d5b3-7023-4848-9853-f5400a64e80f",\n            "currency": "EUR"\n          },\n          "debitAccount": {\n            "accountId": "4ec4e5f6-1124-5678-abcd-1234567890ef",\n            "currency": "EUR"\n          },\n          "instructedAmount": {\n            "amount": "5877.78",\n            "currency": "EUR"\n          },\n          "reference": "Business Expense"\n        }\'',
      },
    },
  },
  {
    name: 'retrieve',
    endpoint: '/api/v1/parties/{partyId}/funds-transfers/{fundsTransferId}',
    httpMethod: 'get',
    summary: 'Get a funds transfer by id',
    description: 'Retrieve a single funds transfer for the given party.\n',
    stainlessPath: '(resource) parties.funds-transfers > (method) retrieve',
    qualified: 'client.parties.fundsTransfers.retrieve',
    params: ['partyId: string;', 'fundsTransferId: string;', 'plmr-user-action?: boolean;'],
    response:
      "{ id: string; createdAt: string; status: 'INITIATED' | 'COMPLETED' | 'INITIATION_FAILED' | 'FAILED'; statusHistory: { status: 'INITIATED' | 'COMPLETED' | 'INITIATION_FAILED' | 'FAILED'; statusDateTime: string; }[]; credit?: { accountId?: string; currency?: string; }; credited?: { amount: number; accountId?: string; currency?: string; }; debit?: { accountId?: string; currency?: string; }; debited?: { amount: number; accountId?: string; currency?: string; }; failure?: { code: string; reason?: string; }; fixedAmountSide?: 'DEBIT' | 'CREDIT'; instructedAmount?: number; partyId?: string; partyType?: string; quoteId?: string; rate?: number; reference?: string; updatedAt?: string; }",
    markdown:
      "## retrieve\n\n`client.parties.fundsTransfers.retrieve(partyId: string, fundsTransferId: string, plmr-user-action?: boolean): { id: string; createdAt: string; status: 'INITIATED' | 'COMPLETED' | 'INITIATION_FAILED' | 'FAILED'; statusHistory: object[]; credit?: object; credited?: object; debit?: object; debited?: object; failure?: object; fixedAmountSide?: 'DEBIT' | 'CREDIT'; instructedAmount?: number; partyId?: string; partyType?: string; quoteId?: string; rate?: number; reference?: string; updatedAt?: string; }`\n\n**get** `/api/v1/parties/{partyId}/funds-transfers/{fundsTransferId}`\n\nRetrieve a single funds transfer for the given party.\n\n\n### Parameters\n\n- `partyId: string`\n\n- `fundsTransferId: string`\n\n- `plmr-user-action?: boolean`\n\n### Returns\n\n- `{ id: string; createdAt: string; status: 'INITIATED' | 'COMPLETED' | 'INITIATION_FAILED' | 'FAILED'; statusHistory: { status: 'INITIATED' | 'COMPLETED' | 'INITIATION_FAILED' | 'FAILED'; statusDateTime: string; }[]; credit?: { accountId?: string; currency?: string; }; credited?: { amount: number; accountId?: string; currency?: string; }; debit?: { accountId?: string; currency?: string; }; debited?: { amount: number; accountId?: string; currency?: string; }; failure?: { code: string; reason?: string; }; fixedAmountSide?: 'DEBIT' | 'CREDIT'; instructedAmount?: number; partyId?: string; partyType?: string; quoteId?: string; rate?: number; reference?: string; updatedAt?: string; }`\n  Read-model projection of a single funds transfer assembled from the workflow's\nlifecycle events (`FundsTransferInitiated`, `FundsTransferCompleted`,\n`FundsTransferInitiationFailed`, `FundsTransferFailed`).\n\n\n  - `id: string`\n  - `createdAt: string`\n  - `status: 'INITIATED' | 'COMPLETED' | 'INITIATION_FAILED' | 'FAILED'`\n  - `statusHistory: { status: 'INITIATED' | 'COMPLETED' | 'INITIATION_FAILED' | 'FAILED'; statusDateTime: string; }[]`\n  - `credit?: { accountId?: string; currency?: string; }`\n  - `credited?: { amount: number; accountId?: string; currency?: string; }`\n  - `debit?: { accountId?: string; currency?: string; }`\n  - `debited?: { amount: number; accountId?: string; currency?: string; }`\n  - `failure?: { code: string; reason?: string; }`\n  - `fixedAmountSide?: 'DEBIT' | 'CREDIT'`\n  - `instructedAmount?: number`\n  - `partyId?: string`\n  - `partyType?: string`\n  - `quoteId?: string`\n  - `rate?: number`\n  - `reference?: string`\n  - `updatedAt?: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst fundsTransfer = await client.parties.fundsTransfers.retrieve('fundsTransferId', { partyId: '6878951b-256b-4baa-9e81-ad4c577adc4e' });\n\nconsole.log(fundsTransfer);\n```",
    perLanguage: {
      typescript: {
        method: 'client.parties.fundsTransfers.retrieve',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nconst fundsTransfer = await client.parties.fundsTransfers.retrieve('fundsTransferId', {\n  partyId: '6878951b-256b-4baa-9e81-ad4c577adc4e',\n});\n\nconsole.log(fundsTransfer.id);",
      },
      python: {
        method: 'parties.funds_transfers.retrieve',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nfunds_transfer = client.parties.funds_transfers.retrieve(\n    funds_transfer_id="fundsTransferId",\n    party_id="6878951b-256b-4baa-9e81-ad4c577adc4e",\n)\nprint(funds_transfer.id)',
      },
      java: {
        method: 'parties().fundsTransfers().retrieve',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.parties.fundstransfers.FundsTransferRetrieveParams;\nimport com.plumery.api.models.parties.fundstransfers.FundsTransferRetrieveResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        FundsTransferRetrieveParams params = FundsTransferRetrieveParams.builder()\n            .partyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n            .fundsTransferId("fundsTransferId")\n            .build();\n        FundsTransferRetrieveResponse fundsTransfer = client.parties().fundsTransfers().retrieve(params);\n    }\n}',
      },
      kotlin: {
        method: 'parties().fundsTransfers().retrieve',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.parties.fundstransfers.FundsTransferRetrieveParams\nimport com.plumery.api.models.parties.fundstransfers.FundsTransferRetrieveResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: FundsTransferRetrieveParams = FundsTransferRetrieveParams.builder()\n        .partyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n        .fundsTransferId("fundsTransferId")\n        .build()\n    val fundsTransfer: FundsTransferRetrieveResponse = client.parties().fundsTransfers().retrieve(params)\n}',
      },
      go: {
        method: 'client.Parties.FundsTransfers.Get',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tfundsTransfer, err := client.Parties.FundsTransfers.Get(\n\t\tcontext.TODO(),\n\t\t"6878951b-256b-4baa-9e81-ad4c577adc4e",\n\t\t"fundsTransferId",\n\t\tplumery.PartyFundsTransferGetParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", fundsTransfer.ID)\n}\n',
      },
      cli: {
        method: 'funds-transfers retrieve',
        example:
          "plumery parties:funds-transfers retrieve \\\n  --session 'My Session' \\\n  --party-id 6878951b-256b-4baa-9e81-ad4c577adc4e \\\n  --funds-transfer-id fundsTransferId",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/parties/$PARTY_ID/funds-transfers/$FUNDS_TRANSFER_ID \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'list',
    endpoint: '/api/v1/parties/{partyId}/funds-transfers',
    httpMethod: 'get',
    summary: 'List funds transfers',
    description:
      'Retrieve a list of funds transfers for the given party, newest-first.\nUse the `cursor` query parameter to page through the results.\n',
    stainlessPath: '(resource) parties.funds-transfers > (method) list',
    qualified: 'client.parties.fundsTransfers.list',
    params: ['partyId: string;', 'cursor?: string;', 'limit?: number;', 'plmr-user-action?: boolean;'],
    response:
      "{ items: { id: string; createdAt: string; status: 'INITIATED' | 'COMPLETED' | 'INITIATION_FAILED' | 'FAILED'; credit?: { accountId?: string; currency?: string; }; credited?: { amount: number; accountId?: string; currency?: string; }; debit?: { accountId?: string; currency?: string; }; debited?: { amount: number; accountId?: string; currency?: string; }; failure?: { code: string; reason?: string; }; fixedAmountSide?: 'DEBIT' | 'CREDIT'; instructedAmount?: number; partyId?: string; partyType?: string; quoteId?: string; rate?: number; reference?: string; updatedAt?: string; }[]; limit: number; cursor?: string; }",
    markdown:
      "## list\n\n`client.parties.fundsTransfers.list(partyId: string, cursor?: string, limit?: number, plmr-user-action?: boolean): { items: object[]; limit: number; cursor?: string; }`\n\n**get** `/api/v1/parties/{partyId}/funds-transfers`\n\nRetrieve a list of funds transfers for the given party, newest-first.\nUse the `cursor` query parameter to page through the results.\n\n\n### Parameters\n\n- `partyId: string`\n\n- `cursor?: string`\n  Opaque pointer to the next page of funds transfers, returned in the response body of the previous request.\nUse it to retrieve the next page.\n\n\n- `limit?: number`\n  Page size.\n\n- `plmr-user-action?: boolean`\n\n### Returns\n\n- `{ items: { id: string; createdAt: string; status: 'INITIATED' | 'COMPLETED' | 'INITIATION_FAILED' | 'FAILED'; credit?: { accountId?: string; currency?: string; }; credited?: { amount: number; accountId?: string; currency?: string; }; debit?: { accountId?: string; currency?: string; }; debited?: { amount: number; accountId?: string; currency?: string; }; failure?: { code: string; reason?: string; }; fixedAmountSide?: 'DEBIT' | 'CREDIT'; instructedAmount?: number; partyId?: string; partyType?: string; quoteId?: string; rate?: number; reference?: string; updatedAt?: string; }[]; limit: number; cursor?: string; }`\n  Paged list of funds transfers for a party.\n\n  - `items: { id: string; createdAt: string; status: 'INITIATED' | 'COMPLETED' | 'INITIATION_FAILED' | 'FAILED'; credit?: { accountId?: string; currency?: string; }; credited?: { amount: number; accountId?: string; currency?: string; }; debit?: { accountId?: string; currency?: string; }; debited?: { amount: number; accountId?: string; currency?: string; }; failure?: { code: string; reason?: string; }; fixedAmountSide?: 'DEBIT' | 'CREDIT'; instructedAmount?: number; partyId?: string; partyType?: string; quoteId?: string; rate?: number; reference?: string; updatedAt?: string; }[]`\n  - `limit: number`\n  - `cursor?: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst fundsTransfers = await client.parties.fundsTransfers.list('6878951b-256b-4baa-9e81-ad4c577adc4e');\n\nconsole.log(fundsTransfers);\n```",
    perLanguage: {
      typescript: {
        method: 'client.parties.fundsTransfers.list',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nconst fundsTransfers = await client.parties.fundsTransfers.list(\n  '6878951b-256b-4baa-9e81-ad4c577adc4e',\n);\n\nconsole.log(fundsTransfers.items);",
      },
      python: {
        method: 'parties.funds_transfers.list',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nfunds_transfers = client.parties.funds_transfers.list(\n    party_id="6878951b-256b-4baa-9e81-ad4c577adc4e",\n)\nprint(funds_transfers.items)',
      },
      java: {
        method: 'parties().fundsTransfers().list',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.parties.fundstransfers.FundsTransferListParams;\nimport com.plumery.api.models.parties.fundstransfers.FundsTransferListResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        FundsTransferListResponse fundsTransfers = client.parties().fundsTransfers().list("6878951b-256b-4baa-9e81-ad4c577adc4e");\n    }\n}',
      },
      kotlin: {
        method: 'parties().fundsTransfers().list',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.parties.fundstransfers.FundsTransferListParams\nimport com.plumery.api.models.parties.fundstransfers.FundsTransferListResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val fundsTransfers: FundsTransferListResponse = client.parties().fundsTransfers().list("6878951b-256b-4baa-9e81-ad4c577adc4e")\n}',
      },
      go: {
        method: 'client.Parties.FundsTransfers.List',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tfundsTransfers, err := client.Parties.FundsTransfers.List(\n\t\tcontext.TODO(),\n\t\t"6878951b-256b-4baa-9e81-ad4c577adc4e",\n\t\tplumery.PartyFundsTransferListParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", fundsTransfers.Items)\n}\n',
      },
      cli: {
        method: 'funds-transfers list',
        example:
          "plumery parties:funds-transfers list \\\n  --session 'My Session' \\\n  --party-id 6878951b-256b-4baa-9e81-ad4c577adc4e",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/parties/$PARTY_ID/funds-transfers \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'retrieve',
    endpoint: '/api/v1/parties/{partyId}/funds-transfers/{fundsTransferId}/status',
    httpMethod: 'get',
    summary: 'Retrieve Funds Transfer Execution Status',
    description:
      'Retrieve the execution status of a funds transfer along with its status transition history.\n',
    stainlessPath: '(resource) parties.funds-transfers.status > (method) retrieve',
    qualified: 'client.parties.fundsTransfers.status.retrieve',
    params: ['partyId: string;', 'fundsTransferId: string;', 'plmr-user-action?: boolean;'],
    response:
      "{ status: 'INITIATED' | 'COMPLETED' | 'INITIATION_FAILED' | 'FAILED'; statusDateTime: string; statusHistory: { status: 'INITIATED' | 'COMPLETED' | 'INITIATION_FAILED' | 'FAILED'; statusDateTime: string; }[]; failure?: { code: string; reason?: string; }; }",
    markdown:
      "## retrieve\n\n`client.parties.fundsTransfers.status.retrieve(partyId: string, fundsTransferId: string, plmr-user-action?: boolean): { status: 'INITIATED' | 'COMPLETED' | 'INITIATION_FAILED' | 'FAILED'; statusDateTime: string; statusHistory: object[]; failure?: object; }`\n\n**get** `/api/v1/parties/{partyId}/funds-transfers/{fundsTransferId}/status`\n\nRetrieve the execution status of a funds transfer along with its status transition history.\n\n\n### Parameters\n\n- `partyId: string`\n\n- `fundsTransferId: string`\n\n- `plmr-user-action?: boolean`\n\n### Returns\n\n- `{ status: 'INITIATED' | 'COMPLETED' | 'INITIATION_FAILED' | 'FAILED'; statusDateTime: string; statusHistory: { status: 'INITIATED' | 'COMPLETED' | 'INITIATION_FAILED' | 'FAILED'; statusDateTime: string; }[]; failure?: { code: string; reason?: string; }; }`\n  Execution status of a funds transfer along with the full history of status transitions.\n\n\n  - `status: 'INITIATED' | 'COMPLETED' | 'INITIATION_FAILED' | 'FAILED'`\n  - `statusDateTime: string`\n  - `statusHistory: { status: 'INITIATED' | 'COMPLETED' | 'INITIATION_FAILED' | 'FAILED'; statusDateTime: string; }[]`\n  - `failure?: { code: string; reason?: string; }`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst status = await client.parties.fundsTransfers.status.retrieve('fundsTransferId', { partyId: '6878951b-256b-4baa-9e81-ad4c577adc4e' });\n\nconsole.log(status);\n```",
    perLanguage: {
      typescript: {
        method: 'client.parties.fundsTransfers.status.retrieve',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nconst status = await client.parties.fundsTransfers.status.retrieve('fundsTransferId', {\n  partyId: '6878951b-256b-4baa-9e81-ad4c577adc4e',\n});\n\nconsole.log(status.status);",
      },
      python: {
        method: 'parties.funds_transfers.status.retrieve',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nstatus = client.parties.funds_transfers.status.retrieve(\n    funds_transfer_id="fundsTransferId",\n    party_id="6878951b-256b-4baa-9e81-ad4c577adc4e",\n)\nprint(status.status)',
      },
      java: {
        method: 'parties().fundsTransfers().status().retrieve',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.parties.fundstransfers.status.StatusRetrieveParams;\nimport com.plumery.api.models.parties.fundstransfers.status.StatusRetrieveResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        StatusRetrieveParams params = StatusRetrieveParams.builder()\n            .partyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n            .fundsTransferId("fundsTransferId")\n            .build();\n        StatusRetrieveResponse status = client.parties().fundsTransfers().status().retrieve(params);\n    }\n}',
      },
      kotlin: {
        method: 'parties().fundsTransfers().status().retrieve',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.parties.fundstransfers.status.StatusRetrieveParams\nimport com.plumery.api.models.parties.fundstransfers.status.StatusRetrieveResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: StatusRetrieveParams = StatusRetrieveParams.builder()\n        .partyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n        .fundsTransferId("fundsTransferId")\n        .build()\n    val status: StatusRetrieveResponse = client.parties().fundsTransfers().status().retrieve(params)\n}',
      },
      go: {
        method: 'client.Parties.FundsTransfers.Status.Get',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tstatus, err := client.Parties.FundsTransfers.Status.Get(\n\t\tcontext.TODO(),\n\t\t"6878951b-256b-4baa-9e81-ad4c577adc4e",\n\t\t"fundsTransferId",\n\t\tplumery.PartyFundsTransferStatusGetParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", status.Status)\n}\n',
      },
      cli: {
        method: 'status retrieve',
        example:
          "plumery parties:funds-transfers:status retrieve \\\n  --session 'My Session' \\\n  --party-id 6878951b-256b-4baa-9e81-ad4c577adc4e \\\n  --funds-transfer-id fundsTransferId",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/parties/$PARTY_ID/funds-transfers/$FUNDS_TRANSFER_ID/status \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'list',
    endpoint: '/api/v1/parties/{partyId}/financial-operations',
    httpMethod: 'get',
    summary: 'List Financial Operations',
    description:
      "Allows retrieval of financial operations. It's possible to filter the financial operations list by various criteria.",
    stainlessPath: '(resource) parties.financial-operations > (method) list',
    qualified: 'client.parties.financialOperations.list',
    params: [
      'partyId: string;',
      'accounts?: string[];',
      'amountFrom?: number;',
      'amountTo?: number;',
      'cards?: string[];',
      'cursor?: string;',
      'dateFrom?: string;',
      'dateTo?: string;',
      "direction?: 'INCOMING' | 'OUTGOING';",
      'limit?: number;',
      "sortBy?: 'DATE' | 'AMOUNT';",
      "sortDirection?: 'DESCENDING' | 'ASCENDING';",
      "statuses?: 'PROCESSING' | 'HOLD' | 'REJECTED' | 'EXPIRED' | 'SETTLED' | 'REVERSED'[];",
      'types?: string[];',
      'plmr-user-action?: boolean;',
      'X-Request-ID?: string;',
    ],
    response:
      "{ items?: { accountId: string; amount: { amount?: number; currency?: string; }; parentOperationId: string; state: { status: 'PROCESSING' | 'HOLD' | 'REJECTED' | 'EXPIRED' | 'SETTLED' | 'REVERSED'; type: string; otherType?: string; }; additionalAttributes?: object; additionalCounterpartyData?: { address?: object; industryCategoryCode?: number; logo?: string; website?: string; }; additionalInformation?: { description?: string; }; bookingDate?: string; cardId?: string; category?: { icon?: string; name?: string; }; counterpartyAccount?: { currency?: string; iban?: string; } | { currency?: string; other?: object; } | { currency?: string; }; counterpartyAgent?: string; counterpartyName?: string; counterpartyNameOriginal?: string; createdDate?: string; endToEndId?: string; exchangeDetails?: { exchangeRate?: number; fee?: number; }; fundsTransferId?: string; paymentOrderId?: string; remittanceInformationStructuredArray?: { reference?: string; referenceIssuer?: string; referenceType?: string; }; remittanceInformationUnstructured?: string; valueDate?: string; }[]; nextCursor?: string; }",
    markdown:
      "## list\n\n`client.parties.financialOperations.list(partyId: string, accounts?: string[], amountFrom?: number, amountTo?: number, cards?: string[], cursor?: string, dateFrom?: string, dateTo?: string, direction?: 'INCOMING' | 'OUTGOING', limit?: number, sortBy?: 'DATE' | 'AMOUNT', sortDirection?: 'DESCENDING' | 'ASCENDING', statuses?: 'PROCESSING' | 'HOLD' | 'REJECTED' | 'EXPIRED' | 'SETTLED' | 'REVERSED'[], types?: string[], plmr-user-action?: boolean, X-Request-ID?: string): { items?: object[]; nextCursor?: string; }`\n\n**get** `/api/v1/parties/{partyId}/financial-operations`\n\nAllows retrieval of financial operations. It's possible to filter the financial operations list by various criteria.\n\n### Parameters\n\n- `partyId: string`\n\n- `accounts?: string[]`\n  Allows filtering financial operations by list of Account IDs. Account ID is the \"accountId\" attribute of the account structure.\n\n\n- `amountFrom?: number`\n  Allows you to filter financial operations based on the operation amount. \nSet this parameter to the minimum operation amount you want to include in the retrieved list, using only positive values as input. \nHowever, the filter will retrieve both positive and negative financial operations within the range.\n\n\n- `amountTo?: number`\n  Allows you to filter financial operations based on the operation amount. \nSet this parameter to the maximum operation amount you want to include in the retrieved list, using only positive values as input. \nHowever, the filter will retrieve both positive and negative financial operations within the range.\n\n\n- `cards?: string[]`\n  Allows filtering financial operations by list of Card IDs.\n\n\n- `cursor?: string`\n  The cursor is a pointer to the next page of financial operations. \nIt is returned in the response body of the previous request. \nUse it to retrieve the next page of financial operations.\n\n\n- `dateFrom?: string`\n  Starting date (inclusive of the date entered) of the financial operations list based on the creation date of the operation entry.\n\n- `dateTo?: string`\n  End date (inclusive of the date entered) of the financial operation list based on the creation date of the operation entry.\n\n\n- `direction?: 'INCOMING' | 'OUTGOING'`\n  Specifies the direction of a financial operation, allowing you to filter financial operations based on their flow.\nUse it to distinguish between \"incoming\" financial operations (money received) and \"outgoing\" financial operations (money spent or sent):\n  * INCOMING - Select this value to retrieve financial operations representing money received or credited to the account\n  * OUTGOING - Select this value to retrieve financial operations representing money spent or debited from the account\n\n- `limit?: number`\n  Specifies the number of financial operations to retrieve.\n\n\n- `sortBy?: 'DATE' | 'AMOUNT'`\n  Specifies the sorting field that determines the order of the results.\nDefaults to DATE. Transactions are ordered by bookingDate, falling back to valueDate when bookingDate\nis unavailable, and further to createdDate when neither is available. When multiple transactions\nshare the same bookingDate, they are further sorted by valueDate, then by createdDate.\n\n- `sortDirection?: 'DESCENDING' | 'ASCENDING'`\n  Specifies the direction of the sorting field.\nBy default DESCENDING is used.\n\n- `statuses?: 'PROCESSING' | 'HOLD' | 'REJECTED' | 'EXPIRED' | 'SETTLED' | 'REVERSED'[]`\n  Specifies the statuses of financial operations, allowing you to filter financial operations based on selected operation statuses.\n\n\n- `types?: string[]`\n  Specifies the types of financial operations, allowing you to filter financial operations based on selected operation types.\n\n\n- `plmr-user-action?: boolean`\n\n- `X-Request-ID?: string`\n\n### Returns\n\n- `{ items?: { accountId: string; amount: { amount?: number; currency?: string; }; parentOperationId: string; state: { status: 'PROCESSING' | 'HOLD' | 'REJECTED' | 'EXPIRED' | 'SETTLED' | 'REVERSED'; type: string; otherType?: string; }; additionalAttributes?: object; additionalCounterpartyData?: { address?: object; industryCategoryCode?: number; logo?: string; website?: string; }; additionalInformation?: { description?: string; }; bookingDate?: string; cardId?: string; category?: { icon?: string; name?: string; }; counterpartyAccount?: { currency?: string; iban?: string; } | { currency?: string; other?: object; } | { currency?: string; }; counterpartyAgent?: string; counterpartyName?: string; counterpartyNameOriginal?: string; createdDate?: string; endToEndId?: string; exchangeDetails?: { exchangeRate?: number; fee?: number; }; fundsTransferId?: string; paymentOrderId?: string; remittanceInformationStructuredArray?: { reference?: string; referenceIssuer?: string; referenceType?: string; }; remittanceInformationUnstructured?: string; valueDate?: string; }[]; nextCursor?: string; }`\n\n  - `items?: { accountId: string; amount: { amount?: number; currency?: string; }; parentOperationId: string; state: { status: 'PROCESSING' | 'HOLD' | 'REJECTED' | 'EXPIRED' | 'SETTLED' | 'REVERSED'; type: string; otherType?: string; }; additionalAttributes?: object; additionalCounterpartyData?: { address?: { city?: string; country?: string; latitude?: number; longitude?: number; state?: string; street?: string; zip?: string; }; industryCategoryCode?: number; logo?: string; website?: string; }; additionalInformation?: { description?: string; }; bookingDate?: string; cardId?: string; category?: { icon?: string; name?: string; }; counterpartyAccount?: { currency?: string; iban?: string; } | { currency?: string; other?: { identification?: string; schemeNameCone?: string; }; } | { currency?: string; }; counterpartyAgent?: string; counterpartyName?: string; counterpartyNameOriginal?: string; createdDate?: string; endToEndId?: string; exchangeDetails?: { exchangeRate?: number; fee?: number; }; fundsTransferId?: string; paymentOrderId?: string; remittanceInformationStructuredArray?: { reference?: string; referenceIssuer?: string; referenceType?: string; }; remittanceInformationUnstructured?: string; valueDate?: string; }[]`\n  - `nextCursor?: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst financialOperations = await client.parties.financialOperations.list('6878951b-256b-4baa-9e81-ad4c577adc4e');\n\nconsole.log(financialOperations);\n```",
    perLanguage: {
      typescript: {
        method: 'client.parties.financialOperations.list',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nconst financialOperations = await client.parties.financialOperations.list(\n  '6878951b-256b-4baa-9e81-ad4c577adc4e',\n);\n\nconsole.log(financialOperations.items);",
      },
      python: {
        method: 'parties.financial_operations.list',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nfinancial_operations = client.parties.financial_operations.list(\n    party_id="6878951b-256b-4baa-9e81-ad4c577adc4e",\n)\nprint(financial_operations.items)',
      },
      java: {
        method: 'parties().financialOperations().list',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.parties.financialoperations.FinancialOperationListParams;\nimport com.plumery.api.models.parties.financialoperations.FinancialOperationListResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        FinancialOperationListResponse financialOperations = client.parties().financialOperations().list("6878951b-256b-4baa-9e81-ad4c577adc4e");\n    }\n}',
      },
      kotlin: {
        method: 'parties().financialOperations().list',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.parties.financialoperations.FinancialOperationListParams\nimport com.plumery.api.models.parties.financialoperations.FinancialOperationListResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val financialOperations: FinancialOperationListResponse = client.parties().financialOperations().list("6878951b-256b-4baa-9e81-ad4c577adc4e")\n}',
      },
      go: {
        method: 'client.Parties.FinancialOperations.List',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tfinancialOperations, err := client.Parties.FinancialOperations.List(\n\t\tcontext.TODO(),\n\t\t"6878951b-256b-4baa-9e81-ad4c577adc4e",\n\t\tplumery.PartyFinancialOperationListParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", financialOperations.Items)\n}\n',
      },
      cli: {
        method: 'financial-operations list',
        example:
          "plumery parties:financial-operations list \\\n  --session 'My Session' \\\n  --party-id 6878951b-256b-4baa-9e81-ad4c577adc4e",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/parties/$PARTY_ID/financial-operations \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'search',
    endpoint: '/api/v1/parties/{partyId}/financial-operations:search',
    httpMethod: 'post',
    summary: 'Search Financial Operations',
    description:
      'Performs free-text search over financial operations for the given party. In addition to the `search` text, optional filters, sorting and pagination can be provided.\n',
    stainlessPath: '(resource) parties.financial-operations > (method) search',
    qualified: 'client.parties.financialOperations.search',
    params: [
      'partyId: string;',
      'search: string;',
      'accounts?: string[];',
      'amountFrom?: number;',
      'amountTo?: number;',
      'cards?: string[];',
      'cursor?: string;',
      'dateFrom?: string;',
      'dateTo?: string;',
      "direction?: 'INCOMING' | 'OUTGOING';",
      'limit?: number;',
      "sortBy?: 'DATE' | 'AMOUNT';",
      "sortDirection?: 'DESCENDING' | 'ASCENDING';",
      "statuses?: 'PROCESSING' | 'HOLD' | 'REJECTED' | 'EXPIRED' | 'SETTLED' | 'REVERSED'[];",
      'types?: string[];',
      'plmr-user-action?: boolean;',
      'X-Request-ID?: string;',
    ],
    response:
      "{ items?: { accountId: string; amount: { amount?: number; currency?: string; }; parentOperationId: string; state: { status: 'PROCESSING' | 'HOLD' | 'REJECTED' | 'EXPIRED' | 'SETTLED' | 'REVERSED'; type: string; otherType?: string; }; additionalAttributes?: object; additionalCounterpartyData?: { address?: object; industryCategoryCode?: number; logo?: string; website?: string; }; additionalInformation?: { description?: string; }; bookingDate?: string; cardId?: string; category?: { icon?: string; name?: string; }; counterpartyAccount?: { currency?: string; iban?: string; } | { currency?: string; other?: object; } | { currency?: string; }; counterpartyAgent?: string; counterpartyName?: string; counterpartyNameOriginal?: string; createdDate?: string; endToEndId?: string; exchangeDetails?: { exchangeRate?: number; fee?: number; }; fundsTransferId?: string; paymentOrderId?: string; remittanceInformationStructuredArray?: { reference?: string; referenceIssuer?: string; referenceType?: string; }; remittanceInformationUnstructured?: string; valueDate?: string; }[]; nextCursor?: string; }",
    markdown:
      "## search\n\n`client.parties.financialOperations.search(partyId: string, search: string, accounts?: string[], amountFrom?: number, amountTo?: number, cards?: string[], cursor?: string, dateFrom?: string, dateTo?: string, direction?: 'INCOMING' | 'OUTGOING', limit?: number, sortBy?: 'DATE' | 'AMOUNT', sortDirection?: 'DESCENDING' | 'ASCENDING', statuses?: 'PROCESSING' | 'HOLD' | 'REJECTED' | 'EXPIRED' | 'SETTLED' | 'REVERSED'[], types?: string[], plmr-user-action?: boolean, X-Request-ID?: string): { items?: object[]; nextCursor?: string; }`\n\n**post** `/api/v1/parties/{partyId}/financial-operations:search`\n\nPerforms free-text search over financial operations for the given party. In addition to the `search` text, optional filters, sorting and pagination can be provided.\n\n\n### Parameters\n\n- `partyId: string`\n\n- `search: string`\n  Free-text search query to search across financial operations.\n\n- `accounts?: string[]`\n  Allows filtering financial operations by list of Account IDs. Account ID is the \"accountId\" attribute of the account structure.\n\n\n- `amountFrom?: number`\n  Allows you to filter financial operations based on the operation amount. \nSet this parameter to the minimum operation amount you want to include in the retrieved list, using only positive values as input. \nHowever, the filter will retrieve both positive and negative financial operations within the range.\n\n\n- `amountTo?: number`\n  Allows you to filter financial operations based on the operation amount. \nSet this parameter to the maximum operation amount you want to include in the retrieved list, using only positive values as input. \nHowever, the filter will retrieve both positive and negative financial operations within the range.\n\n\n- `cards?: string[]`\n  Allows filtering financial operations by list of Card IDs.\n\n\n- `cursor?: string`\n  The cursor is a pointer to the next page of financial operations. \nIt is returned in the response body of the previous request. \nUse it to retrieve the next page of financial operations.\n\n\n- `dateFrom?: string`\n  Starting date (inclusive of the date entered) of the financial operations list based on the creation date of the operation entry.\n\n\n- `dateTo?: string`\n  End date (inclusive of the date entered) of the financial operation list based on the creation date of the operation entry.\n\n\n- `direction?: 'INCOMING' | 'OUTGOING'`\n  Direction of a financial operation relative to the account:\n- INCOMING: money is credited to the account\n- OUTGOING: money is debited from the account\n\n- `limit?: number`\n  Specifies the number of financial operations to retrieve.\n\n\n- `sortBy?: 'DATE' | 'AMOUNT'`\n  Specifies the sorting field that determines the order of the results.\nDefaults to DATE. Transactions are ordered by bookingDate, falling back to valueDate when bookingDate\nis unavailable, and further to createdDate when neither is available. When multiple transactions\nshare the same bookingDate, they are further sorted by valueDate, then by createdDate.\n\n- `sortDirection?: 'DESCENDING' | 'ASCENDING'`\n\n- `statuses?: 'PROCESSING' | 'HOLD' | 'REJECTED' | 'EXPIRED' | 'SETTLED' | 'REVERSED'[]`\n  Specifies the statuses of financial operations, allowing you to filter financial operations based on selected operation statuses.\n\n\n- `types?: string[]`\n  Specifies the types of financial operations, allowing you to filter financial operations based on selected operation types.\n\n\n- `plmr-user-action?: boolean`\n\n- `X-Request-ID?: string`\n\n### Returns\n\n- `{ items?: { accountId: string; amount: { amount?: number; currency?: string; }; parentOperationId: string; state: { status: 'PROCESSING' | 'HOLD' | 'REJECTED' | 'EXPIRED' | 'SETTLED' | 'REVERSED'; type: string; otherType?: string; }; additionalAttributes?: object; additionalCounterpartyData?: { address?: object; industryCategoryCode?: number; logo?: string; website?: string; }; additionalInformation?: { description?: string; }; bookingDate?: string; cardId?: string; category?: { icon?: string; name?: string; }; counterpartyAccount?: { currency?: string; iban?: string; } | { currency?: string; other?: object; } | { currency?: string; }; counterpartyAgent?: string; counterpartyName?: string; counterpartyNameOriginal?: string; createdDate?: string; endToEndId?: string; exchangeDetails?: { exchangeRate?: number; fee?: number; }; fundsTransferId?: string; paymentOrderId?: string; remittanceInformationStructuredArray?: { reference?: string; referenceIssuer?: string; referenceType?: string; }; remittanceInformationUnstructured?: string; valueDate?: string; }[]; nextCursor?: string; }`\n\n  - `items?: { accountId: string; amount: { amount?: number; currency?: string; }; parentOperationId: string; state: { status: 'PROCESSING' | 'HOLD' | 'REJECTED' | 'EXPIRED' | 'SETTLED' | 'REVERSED'; type: string; otherType?: string; }; additionalAttributes?: object; additionalCounterpartyData?: { address?: { city?: string; country?: string; latitude?: number; longitude?: number; state?: string; street?: string; zip?: string; }; industryCategoryCode?: number; logo?: string; website?: string; }; additionalInformation?: { description?: string; }; bookingDate?: string; cardId?: string; category?: { icon?: string; name?: string; }; counterpartyAccount?: { currency?: string; iban?: string; } | { currency?: string; other?: { identification?: string; schemeNameCone?: string; }; } | { currency?: string; }; counterpartyAgent?: string; counterpartyName?: string; counterpartyNameOriginal?: string; createdDate?: string; endToEndId?: string; exchangeDetails?: { exchangeRate?: number; fee?: number; }; fundsTransferId?: string; paymentOrderId?: string; remittanceInformationStructuredArray?: { reference?: string; referenceIssuer?: string; referenceType?: string; }; remittanceInformationUnstructured?: string; valueDate?: string; }[]`\n  - `nextCursor?: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.parties.financialOperations.search('6878951b-256b-4baa-9e81-ad4c577adc4e', { search: 'Paul Simpson' });\n\nconsole.log(response);\n```",
    perLanguage: {
      typescript: {
        method: 'client.parties.financialOperations.search',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nconst response = await client.parties.financialOperations.search(\n  '6878951b-256b-4baa-9e81-ad4c577adc4e',\n  { search: 'Paul Simpson' },\n);\n\nconsole.log(response.items);",
      },
      python: {
        method: 'parties.financial_operations.search',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nresponse = client.parties.financial_operations.search(\n    party_id="6878951b-256b-4baa-9e81-ad4c577adc4e",\n    search="Paul Simpson",\n)\nprint(response.items)',
      },
      java: {
        method: 'parties().financialOperations().search',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.parties.financialoperations.FinancialOperationSearchParams;\nimport com.plumery.api.models.parties.financialoperations.FinancialOperationSearchResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        FinancialOperationSearchParams params = FinancialOperationSearchParams.builder()\n            .partyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n            .search("Paul Simpson")\n            .build();\n        FinancialOperationSearchResponse response = client.parties().financialOperations().search(params);\n    }\n}',
      },
      kotlin: {
        method: 'parties().financialOperations().search',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.parties.financialoperations.FinancialOperationSearchParams\nimport com.plumery.api.models.parties.financialoperations.FinancialOperationSearchResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: FinancialOperationSearchParams = FinancialOperationSearchParams.builder()\n        .partyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n        .search("Paul Simpson")\n        .build()\n    val response: FinancialOperationSearchResponse = client.parties().financialOperations().search(params)\n}',
      },
      go: {
        method: 'client.Parties.FinancialOperations.Search',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tresponse, err := client.Parties.FinancialOperations.Search(\n\t\tcontext.TODO(),\n\t\t"6878951b-256b-4baa-9e81-ad4c577adc4e",\n\t\tplumery.PartyFinancialOperationSearchParams{\n\t\t\tSearch: plumery.F("Paul Simpson"),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.Items)\n}\n',
      },
      cli: {
        method: 'financial-operations search',
        example:
          "plumery parties:financial-operations search \\\n  --session 'My Session' \\\n  --party-id 6878951b-256b-4baa-9e81-ad4c577adc4e \\\n  --search 'Paul Simpson'",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/parties/$PARTY_ID/financial-operations:search \\\n    -H \'Content-Type: application/json\' \\\n    -H "Cookie: $SESSION" \\\n    -d \'{\n          "search": "Paul Simpson"\n        }\'',
      },
    },
  },
  {
    name: 'list',
    endpoint: '/api/v1/parties/{partyId}/payment-limits',
    httpMethod: 'get',
    summary: 'Get Party Limit Profile',
    description: 'Retrieve the payment limit profile for a specific party\n',
    stainlessPath: '(resource) parties.payment-limits > (method) list',
    qualified: 'client.parties.paymentLimits.list',
    params: ['partyId: string;', 'plmr-user-action?: boolean;'],
    response: '{ id: string; limits: { type: string; paymentTypes?: string[]; }[]; }',
    markdown:
      "## list\n\n`client.parties.paymentLimits.list(partyId: string, plmr-user-action?: boolean): { id: string; limits: object[]; }`\n\n**get** `/api/v1/parties/{partyId}/payment-limits`\n\nRetrieve the payment limit profile for a specific party\n\n\n### Parameters\n\n- `partyId: string`\n\n- `plmr-user-action?: boolean`\n\n### Returns\n\n- `{ id: string; limits: { type: string; paymentTypes?: string[]; }[]; }`\n\n  - `id: string`\n  - `limits: { type: string; paymentTypes?: string[]; }[]`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst paymentLimits = await client.parties.paymentLimits.list('6878951b-256b-4baa-9e81-ad4c577adc4e');\n\nconsole.log(paymentLimits);\n```",
    perLanguage: {
      typescript: {
        method: 'client.parties.paymentLimits.list',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nconst paymentLimits = await client.parties.paymentLimits.list(\n  '6878951b-256b-4baa-9e81-ad4c577adc4e',\n);\n\nconsole.log(paymentLimits.id);",
      },
      python: {
        method: 'parties.payment_limits.list',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\npayment_limits = client.parties.payment_limits.list(\n    party_id="6878951b-256b-4baa-9e81-ad4c577adc4e",\n)\nprint(payment_limits.id)',
      },
      java: {
        method: 'parties().paymentLimits().list',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.parties.paymentlimits.PaymentLimitListParams;\nimport com.plumery.api.models.parties.paymentlimits.PaymentLimitListResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        PaymentLimitListResponse paymentLimits = client.parties().paymentLimits().list("6878951b-256b-4baa-9e81-ad4c577adc4e");\n    }\n}',
      },
      kotlin: {
        method: 'parties().paymentLimits().list',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.parties.paymentlimits.PaymentLimitListParams\nimport com.plumery.api.models.parties.paymentlimits.PaymentLimitListResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val paymentLimits: PaymentLimitListResponse = client.parties().paymentLimits().list("6878951b-256b-4baa-9e81-ad4c577adc4e")\n}',
      },
      go: {
        method: 'client.Parties.PaymentLimits.List',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tpaymentLimits, err := client.Parties.PaymentLimits.List(\n\t\tcontext.TODO(),\n\t\t"6878951b-256b-4baa-9e81-ad4c577adc4e",\n\t\tplumery.PartyPaymentLimitListParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", paymentLimits.ID)\n}\n',
      },
      cli: {
        method: 'payment-limits list',
        example:
          "plumery parties:payment-limits list \\\n  --session 'My Session' \\\n  --party-id 6878951b-256b-4baa-9e81-ad4c577adc4e",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/parties/$PARTY_ID/payment-limits \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'update',
    endpoint: '/api/v1/parties/{partyId}/payment-limits',
    httpMethod: 'put',
    summary: 'Replace Party Limit Profile',
    description:
      'Replace the payment limit profile for a specific party\nSubmitting an empty `limits` array clears all party-level limits, reverting to bank defaults\n',
    stainlessPath: '(resource) parties.payment-limits > (method) update',
    qualified: 'client.parties.paymentLimits.update',
    params: [
      'partyId: string;',
      'limits: { type: string; paymentTypes?: string[]; }[];',
      'If-Match: string;',
      'plmr-mfa-challenge-id?: string;',
      'plmr-mfa-signature?: string;',
      'plmr-user-action?: boolean;',
    ],
    markdown:
      "## update\n\n`client.parties.paymentLimits.update(partyId: string, limits: { type: string; paymentTypes?: string[]; }[], If-Match: string, plmr-mfa-challenge-id?: string, plmr-mfa-signature?: string, plmr-user-action?: boolean): void`\n\n**put** `/api/v1/parties/{partyId}/payment-limits`\n\nReplace the payment limit profile for a specific party\nSubmitting an empty `limits` array clears all party-level limits, reverting to bank defaults\n\n\n### Parameters\n\n- `partyId: string`\n\n- `limits: { type: string; paymentTypes?: string[]; }[]`\n\n- `If-Match: string`\n\n- `plmr-mfa-challenge-id?: string`\n\n- `plmr-mfa-signature?: string`\n\n- `plmr-user-action?: boolean`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nawait client.parties.paymentLimits.update('6878951b-256b-4baa-9e81-ad4c577adc4e', { limits: [{ type: 'type' }], 'If-Match': '\"1\"' })\n```",
    perLanguage: {
      typescript: {
        method: 'client.parties.paymentLimits.update',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nawait client.parties.paymentLimits.update('6878951b-256b-4baa-9e81-ad4c577adc4e', {\n  limits: [{ type: 'type' }],\n  'If-Match': '\"1\"',\n});",
      },
      python: {
        method: 'parties.payment_limits.update',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nclient.parties.payment_limits.update(\n    party_id="6878951b-256b-4baa-9e81-ad4c577adc4e",\n    limits=[{\n        "type": "type"\n    }],\n    if_match="\\"1\\"",\n)',
      },
      java: {
        method: 'parties().paymentLimits().update',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.parties.paymentlimits.PaymentLimitUpdateParams;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        PaymentLimitUpdateParams params = PaymentLimitUpdateParams.builder()\n            .partyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n            .ifMatch("\\"1\\"")\n            .addLimit(PaymentLimitUpdateParams.Limit.builder()\n                .type("type")\n                .build())\n            .build();\n        client.parties().paymentLimits().update(params);\n    }\n}',
      },
      kotlin: {
        method: 'parties().paymentLimits().update',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.parties.paymentlimits.PaymentLimitUpdateParams\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: PaymentLimitUpdateParams = PaymentLimitUpdateParams.builder()\n        .partyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n        .ifMatch("\\"1\\"")\n        .addLimit(PaymentLimitUpdateParams.Limit.builder()\n            .type("type")\n            .build())\n        .build()\n    client.parties().paymentLimits().update(params)\n}',
      },
      go: {
        method: 'client.Parties.PaymentLimits.Update',
        example:
          'package main\n\nimport (\n\t"context"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\terr := client.Parties.PaymentLimits.Update(\n\t\tcontext.TODO(),\n\t\t"6878951b-256b-4baa-9e81-ad4c577adc4e",\n\t\tplumery.PartyPaymentLimitUpdateParams{\n\t\t\tLimits: plumery.F([]plumery.PartyPaymentLimitUpdateParamsLimit{{\n\t\t\t\tType: plumery.F("type"),\n\t\t\t}}),\n\t\t\tIfMatch: plumery.F(`"1"`),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
      },
      cli: {
        method: 'payment-limits update',
        example:
          "plumery parties:payment-limits update \\\n  --session 'My Session' \\\n  --party-id 6878951b-256b-4baa-9e81-ad4c577adc4e \\\n  --limit '{type: type}' \\\n  --if-match '\"1\"'",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/parties/$PARTY_ID/payment-limits \\\n    -X PUT \\\n    -H \'Content-Type: application/json\' \\\n    -H "Cookie: $SESSION" \\\n    -d \'{\n          "limits": [\n            {\n              "type": "type"\n            }\n          ]\n        }\'',
      },
    },
  },
  {
    name: 'retrieve',
    endpoint: '/api/v1/statements/{statementId}',
    httpMethod: 'get',
    summary: 'Retrieve Account Statement',
    description: 'Allows retrieval of a previously generated account statement.',
    stainlessPath: '(resource) statements > (method) retrieve',
    qualified: 'client.statements.retrieve',
    params: ['statementId: string;', 'plmr-user-action?: boolean;'],
    response: 'string',
    markdown:
      "## retrieve\n\n`client.statements.retrieve(statementId: string, plmr-user-action?: boolean): string`\n\n**get** `/api/v1/statements/{statementId}`\n\nAllows retrieval of a previously generated account statement.\n\n### Parameters\n\n- `statementId: string`\n\n- `plmr-user-action?: boolean`\n\n### Returns\n\n- `string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst statement = await client.statements.retrieve('P');\n\nconsole.log(statement);\n\nconst content = await statement.blob()\nconsole.log(content)\n```",
    perLanguage: {
      typescript: {
        method: 'client.statements.retrieve',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nconst statement = await client.statements.retrieve('P');\n\nconsole.log(statement);\n\nconst content = await statement.blob();\nconsole.log(content);",
      },
      python: {
        method: 'statements.retrieve',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nstatement = client.statements.retrieve(\n    statement_id="P",\n)\nprint(statement)\ncontent = statement.read()\nprint(content)',
      },
      java: {
        method: 'statements().retrieve',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.core.http.HttpResponse;\nimport com.plumery.api.models.statements.StatementRetrieveParams;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        HttpResponse statement = client.statements().retrieve("P");\n    }\n}',
      },
      kotlin: {
        method: 'statements().retrieve',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.core.http.HttpResponse\nimport com.plumery.api.models.statements.StatementRetrieveParams\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val statement: HttpResponse = client.statements().retrieve("P")\n}',
      },
      go: {
        method: 'client.Statements.Get',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tstatement, err := client.Statements.Get(\n\t\tcontext.TODO(),\n\t\t"P",\n\t\tplumery.StatementGetParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", statement)\n}\n',
      },
      cli: {
        method: 'statements retrieve',
        example: "plumery statements retrieve \\\n  --session 'My Session' \\\n  --statement-id P",
      },
      http: {
        example: 'curl https://api.plumery.com/api/v1/statements/$STATEMENT_ID \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'list',
    endpoint: '/api/v1/legal-agreements',
    httpMethod: 'get',
    summary: 'List Legal Agreements',
    description: 'Returns a list of the legal agreements based on the request criteria.\n',
    stainlessPath: '(resource) legal-agreements > (method) list',
    qualified: 'client.legalAgreements.list',
    params: ['type?: string;', 'accept-language?: string;', 'X-Request-ID?: string;'],
    response:
      '{ legalAgreements?: { downloadLink?: string; embedLink?: string; language?: string; type?: string; version?: string; }[]; }',
    markdown:
      "## list\n\n`client.legalAgreements.list(type?: string, accept-language?: string, X-Request-ID?: string): { legalAgreements?: object[]; }`\n\n**get** `/api/v1/legal-agreements`\n\nReturns a list of the legal agreements based on the request criteria.\n\n\n### Parameters\n\n- `type?: string`\n  Type of document, used to filter legal agreement documents based on their type\n\n\n- `accept-language?: string`\n\n- `X-Request-ID?: string`\n\n### Returns\n\n- `{ legalAgreements?: { downloadLink?: string; embedLink?: string; language?: string; type?: string; version?: string; }[]; }`\n\n  - `legalAgreements?: { downloadLink?: string; embedLink?: string; language?: string; type?: string; version?: string; }[]`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst legalAgreements = await client.legalAgreements.list();\n\nconsole.log(legalAgreements);\n```",
    perLanguage: {
      typescript: {
        method: 'client.legalAgreements.list',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst legalAgreements = await client.legalAgreements.list();\n\nconsole.log(legalAgreements.legalAgreements);",
      },
      python: {
        method: 'legal_agreements.list',
        example:
          'from plumery import Plumery\n\nclient = Plumery()\nlegal_agreements = client.legal_agreements.list()\nprint(legal_agreements.legal_agreements)',
      },
      java: {
        method: 'legalAgreements().list',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.legalagreements.LegalAgreementListParams;\nimport com.plumery.api.models.legalagreements.LegalAgreementListResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        LegalAgreementListResponse legalAgreements = client.legalAgreements().list();\n    }\n}',
      },
      kotlin: {
        method: 'legalAgreements().list',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.legalagreements.LegalAgreementListParams\nimport com.plumery.api.models.legalagreements.LegalAgreementListResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val legalAgreements: LegalAgreementListResponse = client.legalAgreements().list()\n}',
      },
      go: {
        method: 'client.LegalAgreements.List',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tlegalAgreements, err := client.LegalAgreements.List(context.TODO(), plumery.LegalAgreementListParams{})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", legalAgreements.LegalAgreements)\n}\n',
      },
      cli: {
        method: 'legal-agreements list',
        example: "plumery legal-agreements list \\\n  --session 'My Session'",
      },
      http: {
        example: 'curl https://api.plumery.com/api/v1/legal-agreements',
      },
    },
  },
  {
    name: 'login',
    endpoint: '/api/v1/auth:login',
    httpMethod: 'post',
    summary: 'User Login',
    description:
      'The Login API is used to authenticate a user. \nAfter calling this endpoint, there will always be a next step to follow to complete the user authentication.\n\nExpected next steps:\n- When the login is done from a `BROWSER`, next step would be OTP, for two-factor authentication.\n- When the login is done from an `APP` and `deviceId` is not provided, next step would be Device Registration.\n- When the login is done from an `APP` and `deviceId` is provided, next step would be Device Binding.',
    stainlessPath: '(resource) auth > (method) login',
    qualified: 'client.auth.login',
    params: [
      'password: string;',
      "platform: 'BROWSER' | 'APP';",
      'username: string;',
      "challengeMethod?: 'TOTP_SMS' | 'TOTP_EMAIL' | 'SMART_ID' | 'MOBILE_ID';",
      'deviceId?: string;',
      'X-Device-Integrity-Token?: string;',
    ],
    response:
      "{ nextStep: { challenge: string; info?: { status: 'PENDING_CODE' | 'PENDING_SIGNING'; verificationCode?: string; } | { verificationCode: string; } | { dataToSign: string; } | { availableSigningMethods: 'BIOMETRICS' | 'PASSCODE'[]; } | { code?: string; }; }; sessionId?: string; }",
    markdown:
      "## login\n\n`client.auth.login(password: string, platform: 'BROWSER' | 'APP', username: string, challengeMethod?: 'TOTP_SMS' | 'TOTP_EMAIL' | 'SMART_ID' | 'MOBILE_ID', deviceId?: string, X-Device-Integrity-Token?: string): { nextStep: object; sessionId?: string; }`\n\n**post** `/api/v1/auth:login`\n\nThe Login API is used to authenticate a user. \nAfter calling this endpoint, there will always be a next step to follow to complete the user authentication.\n\nExpected next steps:\n- When the login is done from a `BROWSER`, next step would be OTP, for two-factor authentication.\n- When the login is done from an `APP` and `deviceId` is not provided, next step would be Device Registration.\n- When the login is done from an `APP` and `deviceId` is provided, next step would be Device Binding.\n\n### Parameters\n\n- `password: string`\n  The user's password\n\n- `platform: 'BROWSER' | 'APP'`\n  The platform that is being used for this login.\n- `APP` for native applications (e.g. iOS app) \n- `BROWSER` for web application\n\n- `username: string`\n  The user's username\n\n- `challengeMethod?: 'TOTP_SMS' | 'TOTP_EMAIL' | 'SMART_ID' | 'MOBILE_ID'`\n  In case the login is from a BROWSER, you must provide here the challengeMethod which can be TOTP_SMS or TOTP_EMAIL\n\n- `deviceId?: string`\n  In case the login is from an APP, you can provide here the deviceId generated during the device registration (if available)\n\n- `X-Device-Integrity-Token?: string`\n\n### Returns\n\n- `{ nextStep: { challenge: string; info?: { status: 'PENDING_CODE' | 'PENDING_SIGNING'; verificationCode?: string; } | { verificationCode: string; } | { dataToSign: string; } | { availableSigningMethods: 'BIOMETRICS' | 'PASSCODE'[]; } | { code?: string; }; }; sessionId?: string; }`\n\n  - `nextStep: { challenge: string; info?: { status: 'PENDING_CODE' | 'PENDING_SIGNING'; verificationCode?: string; } | { verificationCode: string; } | { dataToSign: string; } | { availableSigningMethods: 'BIOMETRICS' | 'PASSCODE'[]; } | { code?: string; }; }`\n  - `sessionId?: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.auth.login({\n  password: '1FMArc9)Ll6*',\n  platform: 'BROWSER',\n  username: 'john.doe',\n});\n\nconsole.log(response);\n```",
    perLanguage: {
      typescript: {
        method: 'client.auth.login',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.auth.login({\n  password: '1FMArc9)Ll6*',\n  platform: 'BROWSER',\n  username: 'john.doe',\n});\n\nconsole.log(response.nextStep);",
      },
      python: {
        method: 'auth.login',
        example:
          'from plumery import Plumery\n\nclient = Plumery()\nresponse = client.auth.login(\n    password="1FMArc9)Ll6*",\n    platform="BROWSER",\n    username="john.doe",\n)\nprint(response.next_step)',
      },
      java: {
        method: 'auth().login',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.auth.AuthLoginParams;\nimport com.plumery.api.models.auth.AuthLoginResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        AuthLoginParams params = AuthLoginParams.builder()\n            .password("1FMArc9)Ll6*")\n            .platform(AuthLoginParams.Platform.BROWSER)\n            .username("john.doe")\n            .build();\n        AuthLoginResponse response = client.auth().login(params);\n    }\n}',
      },
      kotlin: {
        method: 'auth().login',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.auth.AuthLoginParams\nimport com.plumery.api.models.auth.AuthLoginResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: AuthLoginParams = AuthLoginParams.builder()\n        .password("1FMArc9)Ll6*")\n        .platform(AuthLoginParams.Platform.BROWSER)\n        .username("john.doe")\n        .build()\n    val response: AuthLoginResponse = client.auth().login(params)\n}',
      },
      go: {
        method: 'client.Auth.Login',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tresponse, err := client.Auth.Login(context.TODO(), plumery.AuthLoginParams{\n\t\tPassword: plumery.F("1FMArc9)Ll6*"),\n\t\tPlatform: plumery.F(plumery.AuthLoginParamsPlatformBrowser),\n\t\tUsername: plumery.F("john.doe"),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.NextStep)\n}\n',
      },
      cli: {
        method: 'auth login',
        example:
          "plumery auth login \\\n  --session 'My Session' \\\n  --password '1FMArc9)Ll6*' \\\n  --platform BROWSER \\\n  --username john.doe",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/auth:login \\\n    -H \'Content-Type: application/json\' \\\n    -d \'{\n          "password": "1FMArc9)Ll6*",\n          "platform": "BROWSER",\n          "username": "john.doe",\n          "deviceId": "3191daaeed978b5b4bd29c161899df72"\n        }\'',
      },
    },
  },
  {
    name: 'logout',
    endpoint: '/api/v1/auth:logout',
    httpMethod: 'post',
    summary: 'User Logout',
    description: 'Terminates the current active session of the user.',
    stainlessPath: '(resource) auth > (method) logout',
    qualified: 'client.auth.logout',
    params: ['plmr-user-action?: boolean;'],
    markdown:
      "## logout\n\n`client.auth.logout(plmr-user-action?: boolean): void`\n\n**post** `/api/v1/auth:logout`\n\nTerminates the current active session of the user.\n\n### Parameters\n\n- `plmr-user-action?: boolean`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nawait client.auth.logout()\n```",
    perLanguage: {
      typescript: {
        method: 'client.auth.logout',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nawait client.auth.logout();",
      },
      python: {
        method: 'auth.logout',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nclient.auth.logout()',
      },
      java: {
        method: 'auth().logout',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.auth.AuthLogoutParams;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        client.auth().logout();\n    }\n}',
      },
      kotlin: {
        method: 'auth().logout',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.auth.AuthLogoutParams\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    client.auth().logout()\n}',
      },
      go: {
        method: 'client.Auth.Logout',
        example:
          'package main\n\nimport (\n\t"context"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\terr := client.Auth.Logout(context.TODO(), plumery.AuthLogoutParams{})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
      },
      cli: {
        method: 'auth logout',
        example: "plumery auth logout \\\n  --session 'My Session'",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/auth:logout \\\n    -X POST \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'refresh',
    endpoint: '/api/v1/auth:refresh',
    httpMethod: 'post',
    summary: 'User Login from Binded Device',
    description: 'User Login from Binded Device',
    stainlessPath: '(resource) auth > (method) refresh',
    qualified: 'client.auth.refresh',
    params: ['deviceId: string;', 'refreshToken: string;', 'plmr-user-action?: boolean;'],
    response:
      "{ nextStep: { challenge: string; info?: { status: 'PENDING_CODE' | 'PENDING_SIGNING'; verificationCode?: string; } | { verificationCode: string; } | { dataToSign: string; } | { availableSigningMethods: 'BIOMETRICS' | 'PASSCODE'[]; } | { code?: string; }; }; sessionId?: string; }",
    markdown:
      "## refresh\n\n`client.auth.refresh(deviceId: string, refreshToken: string, plmr-user-action?: boolean): { nextStep: object; sessionId?: string; }`\n\n**post** `/api/v1/auth:refresh`\n\nUser Login from Binded Device\n\n### Parameters\n\n- `deviceId: string`\n\n- `refreshToken: string`\n\n- `plmr-user-action?: boolean`\n\n### Returns\n\n- `{ nextStep: { challenge: string; info?: { status: 'PENDING_CODE' | 'PENDING_SIGNING'; verificationCode?: string; } | { verificationCode: string; } | { dataToSign: string; } | { availableSigningMethods: 'BIOMETRICS' | 'PASSCODE'[]; } | { code?: string; }; }; sessionId?: string; }`\n\n  - `nextStep: { challenge: string; info?: { status: 'PENDING_CODE' | 'PENDING_SIGNING'; verificationCode?: string; } | { verificationCode: string; } | { dataToSign: string; } | { availableSigningMethods: 'BIOMETRICS' | 'PASSCODE'[]; } | { code?: string; }; }`\n  - `sessionId?: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.auth.refresh({ deviceId: 'P', refreshToken: 'P' });\n\nconsole.log(response);\n```",
    perLanguage: {
      typescript: {
        method: 'client.auth.refresh',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.auth.refresh({ deviceId: 'P', refreshToken: 'P' });\n\nconsole.log(response.nextStep);",
      },
      python: {
        method: 'auth.refresh',
        example:
          'from plumery import Plumery\n\nclient = Plumery()\nresponse = client.auth.refresh(\n    device_id="P",\n    refresh_token="P",\n)\nprint(response.next_step)',
      },
      java: {
        method: 'auth().refresh',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.auth.AuthRefreshParams;\nimport com.plumery.api.models.auth.AuthRefreshResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        AuthRefreshParams params = AuthRefreshParams.builder()\n            .deviceId("P")\n            .refreshToken("P")\n            .build();\n        AuthRefreshResponse response = client.auth().refresh(params);\n    }\n}',
      },
      kotlin: {
        method: 'auth().refresh',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.auth.AuthRefreshParams\nimport com.plumery.api.models.auth.AuthRefreshResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: AuthRefreshParams = AuthRefreshParams.builder()\n        .deviceId("P")\n        .refreshToken("P")\n        .build()\n    val response: AuthRefreshResponse = client.auth().refresh(params)\n}',
      },
      go: {
        method: 'client.Auth.Refresh',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tresponse, err := client.Auth.Refresh(context.TODO(), plumery.AuthRefreshParams{\n\t\tDeviceID:     plumery.F("P"),\n\t\tRefreshToken: plumery.F("P"),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.NextStep)\n}\n',
      },
      cli: {
        method: 'auth refresh',
        example:
          "plumery auth refresh \\\n  --session 'My Session' \\\n  --device-id P \\\n  --refresh-token P",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/auth:refresh \\\n    -H \'Content-Type: application/json\' \\\n    -d \'{\n          "deviceId": "P",\n          "refreshToken": "P"\n        }\'',
      },
    },
  },
  {
    name: 'loginSmartId',
    endpoint: '/api/v1/auth:login-smart-id',
    httpMethod: 'post',
    summary: 'Smart-ID Login',
    description:
      'The Smart-ID Login API is used to authenticate a user using the Smart-ID authentication method.\nAfter calling this endpoint, there will be a next step to follow to complete the user authentication.',
    stainlessPath: '(resource) auth > (method) loginSmartId',
    qualified: 'client.auth.loginSmartID',
    params: [
      "body: { method: 'SAME_DEVICE_SMART_ID'; personalId: string; platform: 'BROWSER' | 'APP'; username: string; deviceId?: string; } | { method: 'CROSS_DEVICE_SMART_ID'; platform: 'BROWSER' | 'APP'; username: string; };",
      'plmr-user-action?: boolean;',
      'X-Device-Integrity-Token?: string;',
    ],
    response:
      "{ nextStep: { challenge: string; info?: { status: 'PENDING_CODE' | 'PENDING_SIGNING'; verificationCode?: string; } | { verificationCode: string; } | { dataToSign: string; } | { availableSigningMethods: 'BIOMETRICS' | 'PASSCODE'[]; } | { code?: string; }; }; sessionId?: string; }",
    perLanguage: {
      typescript: {
        method: 'client.auth.loginSmartID',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.auth.loginSmartID({\n  method: 'SAME_DEVICE_SMART_ID',\n  personalId: '38807182715',\n  platform: 'BROWSER',\n  username: 'john.doe',\n});\n\nconsole.log(response.nextStep);",
      },
      python: {
        method: 'auth.login_smart_id',
        example:
          'from plumery import Plumery\n\nclient = Plumery()\nresponse = client.auth.login_smart_id(\n    method="SAME_DEVICE_SMART_ID",\n    personal_id="38807182715",\n    platform="BROWSER",\n    username="john.doe",\n)\nprint(response.next_step)',
      },
      java: {
        method: 'auth().loginSmartId',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.auth.AuthLoginSmartIdParams;\nimport com.plumery.api.models.auth.AuthLoginSmartIdResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        AuthLoginSmartIdParams.Body.SameDeviceSmartId params = AuthLoginSmartIdParams.Body.SameDeviceSmartId.builder()\n            .personalId("38807182715")\n            .platform(AuthLoginSmartIdParams.Body.SameDeviceSmartId.Platform.BROWSER)\n            .username("john.doe")\n            .build();\n        AuthLoginSmartIdResponse response = client.auth().loginSmartId(params);\n    }\n}',
      },
      kotlin: {
        method: 'auth().loginSmartId',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.auth.AuthLoginSmartIdParams\nimport com.plumery.api.models.auth.AuthLoginSmartIdResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: AuthLoginSmartIdParams.Body.SameDeviceSmartId = AuthLoginSmartIdParams.Body.SameDeviceSmartId.builder()\n        .personalId("38807182715")\n        .platform(AuthLoginSmartIdParams.Body.SameDeviceSmartId.Platform.BROWSER)\n        .username("john.doe")\n        .build()\n    val response: AuthLoginSmartIdResponse = client.auth().loginSmartId(params)\n}',
      },
      go: {
        method: 'client.Auth.LoginSmartID',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tresponse, err := client.Auth.LoginSmartID(context.TODO(), plumery.AuthLoginSmartIDParams{\n\t\tBody: plumery.AuthLoginSmartIDParamsBodyAuthOrchestratorSkSmartIDLoginRequest{\n\t\t\tMethod:     plumery.F(plumery.AuthLoginSmartIDParamsBodyAuthOrchestratorSkSmartIDLoginRequestMethodSameDeviceSmartID),\n\t\t\tPersonalID: plumery.F("38807182715"),\n\t\t\tPlatform:   plumery.F(plumery.AuthLoginSmartIDParamsBodyAuthOrchestratorSkSmartIDLoginRequestPlatformBrowser),\n\t\t\tUsername:   plumery.F("john.doe"),\n\t\t},\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.NextStep)\n}\n',
      },
      cli: {
        method: 'auth loginSmartId',
        example:
          "plumery auth login-smart-id \\\n  --session 'My Session' \\\n  --method SAME_DEVICE_SMART_ID \\\n  --personal-id 38807182715 \\\n  --platform BROWSER \\\n  --username john.doe",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/auth:login-smart-id \\\n    -H \'Content-Type: application/json\' \\\n    -d \'{\n          "method": "SAME_DEVICE_SMART_ID",\n          "personalId": "38807182715",\n          "platform": "BROWSER",\n          "username": "john.doe",\n          "deviceId": "3191daaeed978b5b4bd29c161899df72"\n        }\'',
      },
    },
  },
  {
    name: 'loginMobileId',
    endpoint: '/api/v1/auth:login-mobile-id',
    httpMethod: 'post',
    summary: 'Mobile-ID Login',
    description:
      'The Mobile-ID Login API is used to authenticate a user using the Mobile-ID authentication method.\nAfter calling this endpoint, there will be a next step to follow to complete the user authentication.',
    stainlessPath: '(resource) auth > (method) loginMobileId',
    qualified: 'client.auth.loginMobileID',
    params: [
      'phoneNumber: string;',
      "platform: 'BROWSER' | 'APP';",
      'username: string;',
      'deviceId?: string;',
      'X-Device-Integrity-Token?: string;',
    ],
    response:
      "{ nextStep: { challenge: string; info?: { status: 'PENDING_CODE' | 'PENDING_SIGNING'; verificationCode?: string; } | { verificationCode: string; } | { dataToSign: string; } | { availableSigningMethods: 'BIOMETRICS' | 'PASSCODE'[]; } | { code?: string; }; }; sessionId?: string; }",
    markdown:
      "## loginMobileId\n\n`client.auth.loginMobileID(phoneNumber: string, platform: 'BROWSER' | 'APP', username: string, deviceId?: string, X-Device-Integrity-Token?: string): { nextStep: object; sessionId?: string; }`\n\n**post** `/api/v1/auth:login-mobile-id`\n\nThe Mobile-ID Login API is used to authenticate a user using the Mobile-ID authentication method.\nAfter calling this endpoint, there will be a next step to follow to complete the user authentication.\n\n### Parameters\n\n- `phoneNumber: string`\n  The user's phone number\n\n- `platform: 'BROWSER' | 'APP'`\n  The platform that is being used for this login.\n- `APP` for native applications (e.g. iOS app) \n- `BROWSER` for web application\n\n- `username: string`\n  The user's username\n\n- `deviceId?: string`\n  In case the login is from an APP, you can provide here the deviceId generated during the device registration (if available)\n\n- `X-Device-Integrity-Token?: string`\n\n### Returns\n\n- `{ nextStep: { challenge: string; info?: { status: 'PENDING_CODE' | 'PENDING_SIGNING'; verificationCode?: string; } | { verificationCode: string; } | { dataToSign: string; } | { availableSigningMethods: 'BIOMETRICS' | 'PASSCODE'[]; } | { code?: string; }; }; sessionId?: string; }`\n\n  - `nextStep: { challenge: string; info?: { status: 'PENDING_CODE' | 'PENDING_SIGNING'; verificationCode?: string; } | { verificationCode: string; } | { dataToSign: string; } | { availableSigningMethods: 'BIOMETRICS' | 'PASSCODE'[]; } | { code?: string; }; }`\n  - `sessionId?: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.auth.loginMobileID({\n  phoneNumber: '+37061234567',\n  platform: 'BROWSER',\n  username: 'john.doe',\n});\n\nconsole.log(response);\n```",
    perLanguage: {
      typescript: {
        method: 'client.auth.loginMobileID',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.auth.loginMobileID({\n  phoneNumber: '+37061234567',\n  platform: 'BROWSER',\n  username: 'john.doe',\n});\n\nconsole.log(response.nextStep);",
      },
      python: {
        method: 'auth.login_mobile_id',
        example:
          'from plumery import Plumery\n\nclient = Plumery()\nresponse = client.auth.login_mobile_id(\n    phone_number="+37061234567",\n    platform="BROWSER",\n    username="john.doe",\n)\nprint(response.next_step)',
      },
      java: {
        method: 'auth().loginMobileId',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.auth.AuthLoginMobileIdParams;\nimport com.plumery.api.models.auth.AuthLoginMobileIdResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        AuthLoginMobileIdParams params = AuthLoginMobileIdParams.builder()\n            .phoneNumber("+37061234567")\n            .platform(AuthLoginMobileIdParams.Platform.BROWSER)\n            .username("john.doe")\n            .build();\n        AuthLoginMobileIdResponse response = client.auth().loginMobileId(params);\n    }\n}',
      },
      kotlin: {
        method: 'auth().loginMobileId',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.auth.AuthLoginMobileIdParams\nimport com.plumery.api.models.auth.AuthLoginMobileIdResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: AuthLoginMobileIdParams = AuthLoginMobileIdParams.builder()\n        .phoneNumber("+37061234567")\n        .platform(AuthLoginMobileIdParams.Platform.BROWSER)\n        .username("john.doe")\n        .build()\n    val response: AuthLoginMobileIdResponse = client.auth().loginMobileId(params)\n}',
      },
      go: {
        method: 'client.Auth.LoginMobileID',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tresponse, err := client.Auth.LoginMobileID(context.TODO(), plumery.AuthLoginMobileIDParams{\n\t\tPhoneNumber: plumery.F("+37061234567"),\n\t\tPlatform:    plumery.F(plumery.AuthLoginMobileIDParamsPlatformBrowser),\n\t\tUsername:    plumery.F("john.doe"),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.NextStep)\n}\n',
      },
      cli: {
        method: 'auth loginMobileId',
        example:
          "plumery auth login-mobile-id \\\n  --session 'My Session' \\\n  --phone-number +37061234567 \\\n  --platform BROWSER \\\n  --username john.doe",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/auth:login-mobile-id \\\n    -H \'Content-Type: application/json\' \\\n    -d \'{\n          "phoneNumber": "+37061234567",\n          "platform": "BROWSER",\n          "username": "john.doe",\n          "deviceId": "3191daaeed978b5b4bd29c161899df72"\n        }\'',
      },
    },
  },
  {
    name: 'loginCustom',
    endpoint: '/api/v1/auth:login-custom',
    httpMethod: 'post',
    summary: 'Custom Login',
    description:
      'The Custom Login API is used to initiate the authentication for a user using the custom authentication method, defined in the request body under method field.\nAfter calling this endpoint, there will be a next step to follow to confirm the user authentication.',
    stainlessPath: '(resource) auth > (method) loginCustom',
    qualified: 'client.auth.loginCustom',
    params: [
      'method: string;',
      "platform: 'BROWSER' | 'APP';",
      'username: string;',
      'deviceId?: string;',
      'loginDetails?: object;',
    ],
    response:
      "{ nextStep: { challenge: string; info?: { status: 'PENDING_CODE' | 'PENDING_SIGNING'; verificationCode?: string; } | { verificationCode: string; } | { dataToSign: string; } | { availableSigningMethods: 'BIOMETRICS' | 'PASSCODE'[]; } | { code?: string; }; }; sessionId?: string; }",
    markdown:
      "## loginCustom\n\n`client.auth.loginCustom(method: string, platform: 'BROWSER' | 'APP', username: string, deviceId?: string, loginDetails?: object): { nextStep: object; sessionId?: string; }`\n\n**post** `/api/v1/auth:login-custom`\n\nThe Custom Login API is used to initiate the authentication for a user using the custom authentication method, defined in the request body under method field.\nAfter calling this endpoint, there will be a next step to follow to confirm the user authentication.\n\n### Parameters\n\n- `method: string`\n  Indicates the custom login method.\n\n- `platform: 'BROWSER' | 'APP'`\n  The platform that is being used for this login.\n- `APP` for native applications (e.g. iOS app) \n- `BROWSER` for web application\n\n- `username: string`\n  The user's username\n\n- `deviceId?: string`\n  In case the login is from an APP, you can provide here the deviceId generated during the device registration (if available)\n\n- `loginDetails?: object`\n  Additional details required for the custom login method.\n\n### Returns\n\n- `{ nextStep: { challenge: string; info?: { status: 'PENDING_CODE' | 'PENDING_SIGNING'; verificationCode?: string; } | { verificationCode: string; } | { dataToSign: string; } | { availableSigningMethods: 'BIOMETRICS' | 'PASSCODE'[]; } | { code?: string; }; }; sessionId?: string; }`\n\n  - `nextStep: { challenge: string; info?: { status: 'PENDING_CODE' | 'PENDING_SIGNING'; verificationCode?: string; } | { verificationCode: string; } | { dataToSign: string; } | { availableSigningMethods: 'BIOMETRICS' | 'PASSCODE'[]; } | { code?: string; }; }`\n  - `sessionId?: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.auth.loginCustom({\n  method: 'method',\n  platform: 'BROWSER',\n  username: 'john.doe',\n});\n\nconsole.log(response);\n```",
    perLanguage: {
      typescript: {
        method: 'client.auth.loginCustom',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.auth.loginCustom({\n  method: 'method',\n  platform: 'BROWSER',\n  username: 'john.doe',\n});\n\nconsole.log(response.nextStep);",
      },
      python: {
        method: 'auth.login_custom',
        example:
          'from plumery import Plumery\n\nclient = Plumery()\nresponse = client.auth.login_custom(\n    method="method",\n    platform="BROWSER",\n    username="john.doe",\n)\nprint(response.next_step)',
      },
      java: {
        method: 'auth().loginCustom',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.auth.AuthLoginCustomParams;\nimport com.plumery.api.models.auth.AuthLoginCustomResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        AuthLoginCustomParams params = AuthLoginCustomParams.builder()\n            .method("method")\n            .platform(AuthLoginCustomParams.Platform.BROWSER)\n            .username("john.doe")\n            .build();\n        AuthLoginCustomResponse response = client.auth().loginCustom(params);\n    }\n}',
      },
      kotlin: {
        method: 'auth().loginCustom',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.auth.AuthLoginCustomParams\nimport com.plumery.api.models.auth.AuthLoginCustomResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: AuthLoginCustomParams = AuthLoginCustomParams.builder()\n        .method("method")\n        .platform(AuthLoginCustomParams.Platform.BROWSER)\n        .username("john.doe")\n        .build()\n    val response: AuthLoginCustomResponse = client.auth().loginCustom(params)\n}',
      },
      go: {
        method: 'client.Auth.LoginCustom',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tresponse, err := client.Auth.LoginCustom(context.TODO(), plumery.AuthLoginCustomParams{\n\t\tMethod:   plumery.F("method"),\n\t\tPlatform: plumery.F(plumery.AuthLoginCustomParamsPlatformBrowser),\n\t\tUsername: plumery.F("john.doe"),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.NextStep)\n}\n',
      },
      cli: {
        method: 'auth loginCustom',
        example:
          "plumery auth login-custom \\\n  --session 'My Session' \\\n  --method method \\\n  --platform BROWSER \\\n  --username john.doe",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/auth:login-custom \\\n    -H \'Content-Type: application/json\' \\\n    -d \'{\n          "method": "method",\n          "platform": "BROWSER",\n          "username": "john.doe",\n          "deviceId": "3191daaeed978b5b4bd29c161899df72"\n        }\'',
      },
    },
  },
  {
    name: 'passwordlessLogin',
    endpoint: '/api/v1/auth:passwordless-login',
    httpMethod: 'post',
    summary: 'Passwordless User Login',
    description:
      'The Passwordless Login API is used to authenticate a user without requiring a password. \nAfter calling this endpoint, there will always be a next step to follow to complete the user authentication.\n\nExpected next steps:\n- When the login is done from a `BROWSER`, next step would be OTP, for two-factor authentication.\n- When the login is done from an `APP` and `deviceId` is not provided, next step would be Device Registration.\n- When the login is done from an `APP` and `deviceId` is provided, next step would be Device Binding.\n\nPasswordless phone number login is only supported if the phone number is unique.\nIt may be disabled if phone number uniqueness is not guaranteed at environment level.',
    stainlessPath: '(resource) auth > (method) passwordlessLogin',
    qualified: 'client.auth.passwordlessLogin',
    params: [
      "body: { email: string; method: 'PASSWORDLESS_EMAIL_LOGIN'; deviceId?: string; platform?: 'BROWSER' | 'APP'; } | { method: 'PASSWORDLESS_PHONE_LOGIN'; phoneNumber: string; deviceId?: string; platform?: 'BROWSER' | 'APP'; } | { email: string; method: 'PASSWORDLESS_PASSKEY_LOGIN'; deviceId?: string; platform?: 'BROWSER' | 'APP'; };",
      'X-Device-Integrity-Token?: string;',
    ],
    response:
      "{ nextStep: { challenge: string; info?: { status: 'PENDING_CODE' | 'PENDING_SIGNING'; verificationCode?: string; } | { verificationCode: string; } | { dataToSign: string; } | { availableSigningMethods: 'BIOMETRICS' | 'PASSCODE'[]; } | { code?: string; }; }; sessionId?: string; }",
    perLanguage: {
      typescript: {
        method: 'client.auth.passwordlessLogin',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.auth.passwordlessLogin({\n  email: 'john.snow@example.com',\n  method: 'PASSWORDLESS_EMAIL_LOGIN',\n});\n\nconsole.log(response.nextStep);",
      },
      python: {
        method: 'auth.passwordless_login',
        example:
          'from plumery import Plumery\n\nclient = Plumery()\nresponse = client.auth.passwordless_login(\n    email="john.snow@example.com",\n    method="PASSWORDLESS_EMAIL_LOGIN",\n)\nprint(response.next_step)',
      },
      java: {
        method: 'auth().passwordlessLogin',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.auth.AuthPasswordlessLoginParams;\nimport com.plumery.api.models.auth.AuthPasswordlessLoginResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        AuthPasswordlessLoginParams.Body.PasswordlessEmailLogin params = AuthPasswordlessLoginParams.Body.PasswordlessEmailLogin.builder()\n            .email("john.snow@example.com")\n            .build();\n        AuthPasswordlessLoginResponse response = client.auth().passwordlessLogin(params);\n    }\n}',
      },
      kotlin: {
        method: 'auth().passwordlessLogin',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.auth.AuthPasswordlessLoginParams\nimport com.plumery.api.models.auth.AuthPasswordlessLoginResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: AuthPasswordlessLoginParams.Body.PasswordlessEmailLogin = AuthPasswordlessLoginParams.Body.PasswordlessEmailLogin.builder()\n        .email("john.snow@example.com")\n        .build()\n    val response: AuthPasswordlessLoginResponse = client.auth().passwordlessLogin(params)\n}',
      },
      go: {
        method: 'client.Auth.PasswordlessLogin',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tresponse, err := client.Auth.PasswordlessLogin(context.TODO(), plumery.AuthPasswordlessLoginParams{\n\t\tBody: plumery.AuthPasswordlessLoginParamsBodyAuthOrchestratorPasswordlessLoginEmailRequest{\n\t\t\tEmail:  plumery.F("john.snow@example.com"),\n\t\t\tMethod: plumery.F(plumery.AuthPasswordlessLoginParamsBodyAuthOrchestratorPasswordlessLoginEmailRequestMethodPasswordlessEmailLogin),\n\t\t},\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.NextStep)\n}\n',
      },
      cli: {
        method: 'auth passwordlessLogin',
        example:
          "plumery auth passwordless-login \\\n  --session 'My Session' \\\n  --email john.snow@example.com \\\n  --method PASSWORDLESS_EMAIL_LOGIN \\\n  --phone-number +15555555555",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/auth:passwordless-login \\\n    -H \'Content-Type: application/json\' \\\n    -d \'{\n          "email": "john.snow@example.com",\n          "method": "PASSWORDLESS_EMAIL_LOGIN",\n          "deviceId": "7f200a2fa12c4797a00a2fa12c0797a2"\n        }\'',
      },
    },
  },
  {
    name: 'crossDeviceLogin',
    endpoint: '/api/v1/auth:cross-device-login',
    httpMethod: 'post',
    summary: 'Cross device login',
    description:
      'Initiate a cross device login session. This session can be initiated only from a browser platform.\n\nThe `method` field selects the login variant and must always be sent:\n- `QR` - the initiating device displays a QR code.\n- `IDENTIFIER` - the user is identified by `username` and `personalId`, which are then required.\n\nFor backwards compatibility a payload without `method` is still accepted and treated as `QR`.\nNew integrations must send it explicitly.',
    stainlessPath: '(resource) auth > (method) crossDeviceLogin',
    qualified: 'client.auth.crossDeviceLogin',
    params: [
      "{ method: 'QR'; platform: 'BROWSER' | 'APP'; } | { method: 'IDENTIFIER'; personalId: string; platform: 'BROWSER' | 'APP'; username: string; };",
    ],
    response:
      '{ nextStep: { challenge: string; info?: { crossDeviceSecret: string; expiresAt: string; visualVerificationCode: string; }; }; }',
    perLanguage: {
      typescript: {
        method: 'client.auth.crossDeviceLogin',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.auth.crossDeviceLogin({ method: 'QR', platform: 'BROWSER' });\n\nconsole.log(response.nextStep);",
      },
      python: {
        method: 'auth.cross_device_login',
        example:
          'from plumery import Plumery\n\nclient = Plumery()\nresponse = client.auth.cross_device_login(\n    method="QR",\n    platform="BROWSER",\n)\nprint(response.next_step)',
      },
      java: {
        method: 'auth().crossDeviceLogin',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.auth.AuthCrossDeviceLoginParams;\nimport com.plumery.api.models.auth.AuthCrossDeviceLoginResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        AuthCrossDeviceLoginParams.Body.Qr params = AuthCrossDeviceLoginParams.Body.Qr.builder()\n            .platform(AuthCrossDeviceLoginParams.Body.Qr.Platform.BROWSER)\n            .build();\n        AuthCrossDeviceLoginResponse response = client.auth().crossDeviceLogin(params);\n    }\n}',
      },
      kotlin: {
        method: 'auth().crossDeviceLogin',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.auth.AuthCrossDeviceLoginParams\nimport com.plumery.api.models.auth.AuthCrossDeviceLoginResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: AuthCrossDeviceLoginParams.Body.Qr = AuthCrossDeviceLoginParams.Body.Qr.builder()\n        .platform(AuthCrossDeviceLoginParams.Body.Qr.Platform.BROWSER)\n        .build()\n    val response: AuthCrossDeviceLoginResponse = client.auth().crossDeviceLogin(params)\n}',
      },
      go: {
        method: 'client.Auth.CrossDeviceLogin',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tresponse, err := client.Auth.CrossDeviceLogin(context.TODO(), plumery.AuthCrossDeviceLoginParams{\n\t\tBody: plumery.AuthCrossDeviceLoginParamsBodyAuthOrchestratorCrossDeviceQrLoginRequest{\n\t\t\tMethod:   plumery.F(plumery.AuthCrossDeviceLoginParamsBodyAuthOrchestratorCrossDeviceQrLoginRequestMethodQr),\n\t\t\tPlatform: plumery.F(plumery.AuthCrossDeviceLoginParamsBodyAuthOrchestratorCrossDeviceQrLoginRequestPlatformBrowser),\n\t\t},\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.NextStep)\n}\n',
      },
      cli: {
        method: 'auth crossDeviceLogin',
        example:
          "plumery auth cross-device-login \\\n  --session 'My Session' \\\n  --method QR \\\n  --platform BROWSER \\\n  --personal-id personalId \\\n  --username john.doe",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/auth:cross-device-login \\\n    -H \'Content-Type: application/json\' \\\n    -d \'{\n          "method": "QR",\n          "platform": "BROWSER"\n        }\'',
      },
    },
  },
  {
    name: 'confirm',
    endpoint: '/api/v1/auth/challenges:confirm',
    httpMethod: 'post',
    summary: 'Confirm Session',
    description:
      'Use this endpoint after receiving `confirm` as next step.\n\nThis is the final step to authenticate the user, after all challenges completed successfully.',
    stainlessPath: '(resource) auth.challenges > (method) confirm',
    qualified: 'client.auth.challenges.confirm',
    params: ['sessionId: string;', 'plmr-user-action?: boolean;'],
    response:
      '{ representations: { parties: { id: string; name: string; type: string; }[]; selfIndividualParty: { id: string; name: string; type: string; }; }; deviceId?: string; refreshToken?: string; }',
    markdown:
      "## confirm\n\n`client.auth.challenges.confirm(sessionId: string, plmr-user-action?: boolean): { representations: object; deviceId?: string; refreshToken?: string; }`\n\n**post** `/api/v1/auth/challenges:confirm`\n\nUse this endpoint after receiving `confirm` as next step.\n\nThis is the final step to authenticate the user, after all challenges completed successfully.\n\n### Parameters\n\n- `sessionId: string`\n\n- `plmr-user-action?: boolean`\n\n### Returns\n\n- `{ representations: { parties: { id: string; name: string; type: string; }[]; selfIndividualParty: { id: string; name: string; type: string; }; }; deviceId?: string; refreshToken?: string; }`\n\n  - `representations: { parties: { id: string; name: string; type: string; }[]; selfIndividualParty: { id: string; name: string; type: string; }; }`\n  - `deviceId?: string`\n  - `refreshToken?: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.auth.challenges.confirm({ sessionId: '3191daaeed978b5b4bd29c161899df72' });\n\nconsole.log(response);\n```",
    perLanguage: {
      typescript: {
        method: 'client.auth.challenges.confirm',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.auth.challenges.confirm({\n  sessionId: '3191daaeed978b5b4bd29c161899df72',\n});\n\nconsole.log(response.representations);",
      },
      python: {
        method: 'auth.challenges.confirm',
        example:
          'from plumery import Plumery\n\nclient = Plumery()\nresponse = client.auth.challenges.confirm(\n    session_id="3191daaeed978b5b4bd29c161899df72",\n)\nprint(response.representations)',
      },
      java: {
        method: 'auth().challenges().confirm',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.auth.challenges.ChallengeConfirmParams;\nimport com.plumery.api.models.auth.challenges.ChallengeConfirmResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        ChallengeConfirmParams params = ChallengeConfirmParams.builder()\n            .sessionId("3191daaeed978b5b4bd29c161899df72")\n            .build();\n        ChallengeConfirmResponse response = client.auth().challenges().confirm(params);\n    }\n}',
      },
      kotlin: {
        method: 'auth().challenges().confirm',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.auth.challenges.ChallengeConfirmParams\nimport com.plumery.api.models.auth.challenges.ChallengeConfirmResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: ChallengeConfirmParams = ChallengeConfirmParams.builder()\n        .sessionId("3191daaeed978b5b4bd29c161899df72")\n        .build()\n    val response: ChallengeConfirmResponse = client.auth().challenges().confirm(params)\n}',
      },
      go: {
        method: 'client.Auth.Challenges.Confirm',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tresponse, err := client.Auth.Challenges.Confirm(context.TODO(), plumery.AuthChallengeConfirmParams{\n\t\tSessionID: plumery.F("3191daaeed978b5b4bd29c161899df72"),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.Representations)\n}\n',
      },
      cli: {
        method: 'challenges confirm',
        example:
          "plumery auth:challenges confirm \\\n  --session 'My Session' \\\n  --session-id 3191daaeed978b5b4bd29c161899df72",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/auth/challenges:confirm \\\n    -H \'Content-Type: application/json\' \\\n    -d \'{\n          "sessionId": "3191daaeed978b5b4bd29c161899df72"\n        }\'',
      },
    },
  },
  {
    name: 'registerDevice',
    endpoint: '/api/v1/auth/challenges:register-device',
    httpMethod: 'post',
    summary: 'Register Device',
    description:
      'Use this endpoint after receiving `DeviceRegistration` as next step.\n\nThis initiate the process of registering the device as a trusted one.\nNext step is `DeviceBinding`',
    stainlessPath: '(resource) auth.challenges > (method) registerDevice',
    qualified: 'client.auth.challenges.registerDevice',
    params: ['sessionId: string;', 'info?: object;', 'plmr-user-action?: boolean;'],
    response:
      "{ nextStep: { challenge: string; info?: { status: 'PENDING_CODE' | 'PENDING_SIGNING'; verificationCode?: string; } | { verificationCode: string; } | { dataToSign: string; } | { availableSigningMethods: 'BIOMETRICS' | 'PASSCODE'[]; } | { code?: string; }; }; sessionId?: string; }",
    markdown:
      "## registerDevice\n\n`client.auth.challenges.registerDevice(sessionId: string, info?: object, plmr-user-action?: boolean): { nextStep: object; sessionId?: string; }`\n\n**post** `/api/v1/auth/challenges:register-device`\n\nUse this endpoint after receiving `DeviceRegistration` as next step.\n\nThis initiate the process of registering the device as a trusted one.\nNext step is `DeviceBinding`\n\n### Parameters\n\n- `sessionId: string`\n  The ID of the session\n\n- `info?: object`\n  Any sort of information about the device that needs to be stored\n\n- `plmr-user-action?: boolean`\n\n### Returns\n\n- `{ nextStep: { challenge: string; info?: { status: 'PENDING_CODE' | 'PENDING_SIGNING'; verificationCode?: string; } | { verificationCode: string; } | { dataToSign: string; } | { availableSigningMethods: 'BIOMETRICS' | 'PASSCODE'[]; } | { code?: string; }; }; sessionId?: string; }`\n\n  - `nextStep: { challenge: string; info?: { status: 'PENDING_CODE' | 'PENDING_SIGNING'; verificationCode?: string; } | { verificationCode: string; } | { dataToSign: string; } | { availableSigningMethods: 'BIOMETRICS' | 'PASSCODE'[]; } | { code?: string; }; }`\n  - `sessionId?: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.auth.challenges.registerDevice({ sessionId: '3191daaeed978b5b4bd29c161899df72' });\n\nconsole.log(response);\n```",
    perLanguage: {
      typescript: {
        method: 'client.auth.challenges.registerDevice',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.auth.challenges.registerDevice({\n  sessionId: '3191daaeed978b5b4bd29c161899df72',\n});\n\nconsole.log(response.nextStep);",
      },
      python: {
        method: 'auth.challenges.register_device',
        example:
          'from plumery import Plumery\n\nclient = Plumery()\nresponse = client.auth.challenges.register_device(\n    session_id="3191daaeed978b5b4bd29c161899df72",\n)\nprint(response.next_step)',
      },
      java: {
        method: 'auth().challenges().registerDevice',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.auth.challenges.ChallengeRegisterDeviceParams;\nimport com.plumery.api.models.auth.challenges.ChallengeRegisterDeviceResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        ChallengeRegisterDeviceParams params = ChallengeRegisterDeviceParams.builder()\n            .sessionId("3191daaeed978b5b4bd29c161899df72")\n            .build();\n        ChallengeRegisterDeviceResponse response = client.auth().challenges().registerDevice(params);\n    }\n}',
      },
      kotlin: {
        method: 'auth().challenges().registerDevice',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.auth.challenges.ChallengeRegisterDeviceParams\nimport com.plumery.api.models.auth.challenges.ChallengeRegisterDeviceResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: ChallengeRegisterDeviceParams = ChallengeRegisterDeviceParams.builder()\n        .sessionId("3191daaeed978b5b4bd29c161899df72")\n        .build()\n    val response: ChallengeRegisterDeviceResponse = client.auth().challenges().registerDevice(params)\n}',
      },
      go: {
        method: 'client.Auth.Challenges.RegisterDevice',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tresponse, err := client.Auth.Challenges.RegisterDevice(context.TODO(), plumery.AuthChallengeRegisterDeviceParams{\n\t\tSessionID: plumery.F("3191daaeed978b5b4bd29c161899df72"),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.NextStep)\n}\n',
      },
      cli: {
        method: 'challenges registerDevice',
        example:
          "plumery auth:challenges register-device \\\n  --session 'My Session' \\\n  --session-id 3191daaeed978b5b4bd29c161899df72",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/auth/challenges:register-device \\\n    -H \'Content-Type: application/json\' \\\n    -d \'{\n          "sessionId": "3191daaeed978b5b4bd29c161899df72"\n        }\'',
      },
    },
  },
  {
    name: 'sign',
    endpoint: '/api/v1/auth/challenges:sign',
    httpMethod: 'post',
    summary: 'Bind Device',
    description:
      'Use this endpoint after receiving `DeviceBinding` as next step.\n\nBind device by signing it - this will enable the user to seamlessly login from the same device.\nIf device signature is successful, next step may be `OTP` based on the environment configuration.\nIf the challenge method is `TOTP_SMS`, the OTP code will be sent to the phone number. \nOtherwise, if the challenge method is `TOTP_EMAIL`, the OTP code will be sent to the email address.',
    stainlessPath: '(resource) auth.challenges > (method) sign',
    qualified: 'client.auth.challenges.sign',
    params: [
      "challengeMethod: 'TOTP_SMS' | 'TOTP_EMAIL' | 'SMART_ID' | 'MOBILE_ID';",
      'sessionId: string;',
      'signature: string;',
      'plmr-user-action?: boolean;',
    ],
    response:
      "{ nextStep: { challenge: string; info?: { status: 'PENDING_CODE' | 'PENDING_SIGNING'; verificationCode?: string; } | { verificationCode: string; } | { dataToSign: string; } | { availableSigningMethods: 'BIOMETRICS' | 'PASSCODE'[]; } | { code?: string; }; }; sessionId?: string; }",
    markdown:
      "## sign\n\n`client.auth.challenges.sign(challengeMethod: 'TOTP_SMS' | 'TOTP_EMAIL' | 'SMART_ID' | 'MOBILE_ID', sessionId: string, signature: string, plmr-user-action?: boolean): { nextStep: object; sessionId?: string; }`\n\n**post** `/api/v1/auth/challenges:sign`\n\nUse this endpoint after receiving `DeviceBinding` as next step.\n\nBind device by signing it - this will enable the user to seamlessly login from the same device.\nIf device signature is successful, next step may be `OTP` based on the environment configuration.\nIf the challenge method is `TOTP_SMS`, the OTP code will be sent to the phone number. \nOtherwise, if the challenge method is `TOTP_EMAIL`, the OTP code will be sent to the email address.\n\n### Parameters\n\n- `challengeMethod: 'TOTP_SMS' | 'TOTP_EMAIL' | 'SMART_ID' | 'MOBILE_ID'`\n  Specifies the method by which the OTP code will be delivered, such as via SMS or email\n\n- `sessionId: string`\n  The ID of the session\n\n- `signature: string`\n  A Base64-encoded RSA signature over Base64-encoded `dataToSign` provided when receiving `DeviceBinding` as the next step.\nThe signature is generated with the device’s private key using the SHA256withRSA (PKCS#1 v1.5) algorithm. The `dataToSign` is to be Base64-decoded for signing.\n\n\n- `plmr-user-action?: boolean`\n\n### Returns\n\n- `{ nextStep: { challenge: string; info?: { status: 'PENDING_CODE' | 'PENDING_SIGNING'; verificationCode?: string; } | { verificationCode: string; } | { dataToSign: string; } | { availableSigningMethods: 'BIOMETRICS' | 'PASSCODE'[]; } | { code?: string; }; }; sessionId?: string; }`\n\n  - `nextStep: { challenge: string; info?: { status: 'PENDING_CODE' | 'PENDING_SIGNING'; verificationCode?: string; } | { verificationCode: string; } | { dataToSign: string; } | { availableSigningMethods: 'BIOMETRICS' | 'PASSCODE'[]; } | { code?: string; }; }`\n  - `sessionId?: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.auth.challenges.sign({\n  challengeMethod: 'TOTP_SMS',\n  sessionId: '3191daaeed978b5b4bd29c161899df72',\n  signature: 'P',\n});\n\nconsole.log(response);\n```",
    perLanguage: {
      typescript: {
        method: 'client.auth.challenges.sign',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.auth.challenges.sign({\n  challengeMethod: 'TOTP_SMS',\n  sessionId: '3191daaeed978b5b4bd29c161899df72',\n  signature: 'P',\n});\n\nconsole.log(response.nextStep);",
      },
      python: {
        method: 'auth.challenges.sign',
        example:
          'from plumery import Plumery\n\nclient = Plumery()\nresponse = client.auth.challenges.sign(\n    challenge_method="TOTP_SMS",\n    session_id="3191daaeed978b5b4bd29c161899df72",\n    signature="P",\n)\nprint(response.next_step)',
      },
      java: {
        method: 'auth().challenges().sign',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.auth.challenges.ChallengeSignParams;\nimport com.plumery.api.models.auth.challenges.ChallengeSignResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        ChallengeSignParams params = ChallengeSignParams.builder()\n            .challengeMethod(ChallengeSignParams.ChallengeMethod.TOTP_SMS)\n            .sessionId("3191daaeed978b5b4bd29c161899df72")\n            .signature("P")\n            .build();\n        ChallengeSignResponse response = client.auth().challenges().sign(params);\n    }\n}',
      },
      kotlin: {
        method: 'auth().challenges().sign',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.auth.challenges.ChallengeSignParams\nimport com.plumery.api.models.auth.challenges.ChallengeSignResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: ChallengeSignParams = ChallengeSignParams.builder()\n        .challengeMethod(ChallengeSignParams.ChallengeMethod.TOTP_SMS)\n        .sessionId("3191daaeed978b5b4bd29c161899df72")\n        .signature("P")\n        .build()\n    val response: ChallengeSignResponse = client.auth().challenges().sign(params)\n}',
      },
      go: {
        method: 'client.Auth.Challenges.Sign',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tresponse, err := client.Auth.Challenges.Sign(context.TODO(), plumery.AuthChallengeSignParams{\n\t\tChallengeMethod: plumery.F(plumery.AuthChallengeSignParamsChallengeMethodTotpSMS),\n\t\tSessionID:       plumery.F("3191daaeed978b5b4bd29c161899df72"),\n\t\tSignature:       plumery.F("P"),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.NextStep)\n}\n',
      },
      cli: {
        method: 'challenges sign',
        example:
          "plumery auth:challenges sign \\\n  --session 'My Session' \\\n  --challenge-method TOTP_SMS \\\n  --session-id 3191daaeed978b5b4bd29c161899df72 \\\n  --signature P",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/auth/challenges:sign \\\n    -H \'Content-Type: application/json\' \\\n    -d \'{\n          "challengeMethod": "TOTP_SMS",\n          "sessionId": "3191daaeed978b5b4bd29c161899df72",\n          "signature": "P"\n        }\'',
      },
    },
  },
  {
    name: 'enablePasscode',
    endpoint: '/api/v1/auth/challenges:enable-passcode',
    httpMethod: 'post',
    summary: 'Enable passcode Challenge',
    description:
      'Use this endpoint after receiving `EnablePasscode` as a next step.\n\nThis enables or disables passcode based authentication for the user session.',
    stainlessPath: '(resource) auth.challenges > (method) enablePasscode',
    qualified: 'client.auth.challenges.enablePasscode',
    params: ['enabled: boolean;', 'sessionId: string;', 'publicKey?: string;', 'plmr-user-action?: boolean;'],
    response:
      "{ nextStep: { challenge: string; info?: { status: 'PENDING_CODE' | 'PENDING_SIGNING'; verificationCode?: string; } | { verificationCode: string; } | { dataToSign: string; } | { availableSigningMethods: 'BIOMETRICS' | 'PASSCODE'[]; } | { code?: string; }; }; sessionId?: string; }",
    markdown:
      "## enablePasscode\n\n`client.auth.challenges.enablePasscode(enabled: boolean, sessionId: string, publicKey?: string, plmr-user-action?: boolean): { nextStep: object; sessionId?: string; }`\n\n**post** `/api/v1/auth/challenges:enable-passcode`\n\nUse this endpoint after receiving `EnablePasscode` as a next step.\n\nThis enables or disables passcode based authentication for the user session.\n\n### Parameters\n\n- `enabled: boolean`\n  Flag indicating whether the passcode is to be enabled\n\n- `sessionId: string`\n  The ID of the session\n\n- `publicKey?: string`\n  A Base64-encoded RSA public key (up to 4096 bytes) generated using SHA-256 hashing. Only required if `enabled` value is `true`.\n\n- `plmr-user-action?: boolean`\n\n### Returns\n\n- `{ nextStep: { challenge: string; info?: { status: 'PENDING_CODE' | 'PENDING_SIGNING'; verificationCode?: string; } | { verificationCode: string; } | { dataToSign: string; } | { availableSigningMethods: 'BIOMETRICS' | 'PASSCODE'[]; } | { code?: string; }; }; sessionId?: string; }`\n\n  - `nextStep: { challenge: string; info?: { status: 'PENDING_CODE' | 'PENDING_SIGNING'; verificationCode?: string; } | { verificationCode: string; } | { dataToSign: string; } | { availableSigningMethods: 'BIOMETRICS' | 'PASSCODE'[]; } | { code?: string; }; }`\n  - `sessionId?: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.auth.challenges.enablePasscode({ enabled: true, sessionId: '3191daaeed978b5b4bd29c161899df72' });\n\nconsole.log(response);\n```",
    perLanguage: {
      typescript: {
        method: 'client.auth.challenges.enablePasscode',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.auth.challenges.enablePasscode({\n  enabled: true,\n  sessionId: '3191daaeed978b5b4bd29c161899df72',\n});\n\nconsole.log(response.nextStep);",
      },
      python: {
        method: 'auth.challenges.enable_passcode',
        example:
          'from plumery import Plumery\n\nclient = Plumery()\nresponse = client.auth.challenges.enable_passcode(\n    enabled=True,\n    session_id="3191daaeed978b5b4bd29c161899df72",\n)\nprint(response.next_step)',
      },
      java: {
        method: 'auth().challenges().enablePasscode',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.auth.challenges.ChallengeEnablePasscodeParams;\nimport com.plumery.api.models.auth.challenges.ChallengeEnablePasscodeResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        ChallengeEnablePasscodeParams params = ChallengeEnablePasscodeParams.builder()\n            .enabled(true)\n            .sessionId("3191daaeed978b5b4bd29c161899df72")\n            .build();\n        ChallengeEnablePasscodeResponse response = client.auth().challenges().enablePasscode(params);\n    }\n}',
      },
      kotlin: {
        method: 'auth().challenges().enablePasscode',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.auth.challenges.ChallengeEnablePasscodeParams\nimport com.plumery.api.models.auth.challenges.ChallengeEnablePasscodeResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: ChallengeEnablePasscodeParams = ChallengeEnablePasscodeParams.builder()\n        .enabled(true)\n        .sessionId("3191daaeed978b5b4bd29c161899df72")\n        .build()\n    val response: ChallengeEnablePasscodeResponse = client.auth().challenges().enablePasscode(params)\n}',
      },
      go: {
        method: 'client.Auth.Challenges.EnablePasscode',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tresponse, err := client.Auth.Challenges.EnablePasscode(context.TODO(), plumery.AuthChallengeEnablePasscodeParams{\n\t\tEnabled:   plumery.F(true),\n\t\tSessionID: plumery.F("3191daaeed978b5b4bd29c161899df72"),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.NextStep)\n}\n',
      },
      cli: {
        method: 'challenges enablePasscode',
        example:
          "plumery auth:challenges enable-passcode \\\n  --session 'My Session' \\\n  --enabled \\\n  --session-id 3191daaeed978b5b4bd29c161899df72",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/auth/challenges:enable-passcode \\\n    -H \'Content-Type: application/json\' \\\n    -d \'{\n          "enabled": true,\n          "sessionId": "3191daaeed978b5b4bd29c161899df72"\n        }\'',
      },
    },
  },
  {
    name: 'enableBiometrics',
    endpoint: '/api/v1/auth/challenges:enable-biometrics',
    httpMethod: 'post',
    summary: 'Enable Biometrics Challenge',
    description:
      'Use this endpoint after receiving `EnableBiometrics` as a next step.\n\nThis enables or disables biometric authentication for the user session.',
    stainlessPath: '(resource) auth.challenges > (method) enableBiometrics',
    qualified: 'client.auth.challenges.enableBiometrics',
    params: ['enabled: boolean;', 'sessionId: string;', 'publicKey?: string;', 'plmr-user-action?: boolean;'],
    response:
      "{ nextStep: { challenge: string; info?: { status: 'PENDING_CODE' | 'PENDING_SIGNING'; verificationCode?: string; } | { verificationCode: string; } | { dataToSign: string; } | { availableSigningMethods: 'BIOMETRICS' | 'PASSCODE'[]; } | { code?: string; }; }; sessionId?: string; }",
    markdown:
      "## enableBiometrics\n\n`client.auth.challenges.enableBiometrics(enabled: boolean, sessionId: string, publicKey?: string, plmr-user-action?: boolean): { nextStep: object; sessionId?: string; }`\n\n**post** `/api/v1/auth/challenges:enable-biometrics`\n\nUse this endpoint after receiving `EnableBiometrics` as a next step.\n\nThis enables or disables biometric authentication for the user session.\n\n### Parameters\n\n- `enabled: boolean`\n  Flag indicating whether the biometrics is to be enabled\n\n- `sessionId: string`\n  The ID of the session\n\n- `publicKey?: string`\n  A Base64-encoded RSA public key (up to 4096 bytes) generated using SHA-256 hashing. Only required if `enabled` value is `true`.\n\n- `plmr-user-action?: boolean`\n\n### Returns\n\n- `{ nextStep: { challenge: string; info?: { status: 'PENDING_CODE' | 'PENDING_SIGNING'; verificationCode?: string; } | { verificationCode: string; } | { dataToSign: string; } | { availableSigningMethods: 'BIOMETRICS' | 'PASSCODE'[]; } | { code?: string; }; }; sessionId?: string; }`\n\n  - `nextStep: { challenge: string; info?: { status: 'PENDING_CODE' | 'PENDING_SIGNING'; verificationCode?: string; } | { verificationCode: string; } | { dataToSign: string; } | { availableSigningMethods: 'BIOMETRICS' | 'PASSCODE'[]; } | { code?: string; }; }`\n  - `sessionId?: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.auth.challenges.enableBiometrics({ enabled: true, sessionId: '3191daaeed978b5b4bd29c161899df72' });\n\nconsole.log(response);\n```",
    perLanguage: {
      typescript: {
        method: 'client.auth.challenges.enableBiometrics',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.auth.challenges.enableBiometrics({\n  enabled: true,\n  sessionId: '3191daaeed978b5b4bd29c161899df72',\n});\n\nconsole.log(response.nextStep);",
      },
      python: {
        method: 'auth.challenges.enable_biometrics',
        example:
          'from plumery import Plumery\n\nclient = Plumery()\nresponse = client.auth.challenges.enable_biometrics(\n    enabled=True,\n    session_id="3191daaeed978b5b4bd29c161899df72",\n)\nprint(response.next_step)',
      },
      java: {
        method: 'auth().challenges().enableBiometrics',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.auth.challenges.ChallengeEnableBiometricsParams;\nimport com.plumery.api.models.auth.challenges.ChallengeEnableBiometricsResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        ChallengeEnableBiometricsParams params = ChallengeEnableBiometricsParams.builder()\n            .enabled(true)\n            .sessionId("3191daaeed978b5b4bd29c161899df72")\n            .build();\n        ChallengeEnableBiometricsResponse response = client.auth().challenges().enableBiometrics(params);\n    }\n}',
      },
      kotlin: {
        method: 'auth().challenges().enableBiometrics',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.auth.challenges.ChallengeEnableBiometricsParams\nimport com.plumery.api.models.auth.challenges.ChallengeEnableBiometricsResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: ChallengeEnableBiometricsParams = ChallengeEnableBiometricsParams.builder()\n        .enabled(true)\n        .sessionId("3191daaeed978b5b4bd29c161899df72")\n        .build()\n    val response: ChallengeEnableBiometricsResponse = client.auth().challenges().enableBiometrics(params)\n}',
      },
      go: {
        method: 'client.Auth.Challenges.EnableBiometrics',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tresponse, err := client.Auth.Challenges.EnableBiometrics(context.TODO(), plumery.AuthChallengeEnableBiometricsParams{\n\t\tEnabled:   plumery.F(true),\n\t\tSessionID: plumery.F("3191daaeed978b5b4bd29c161899df72"),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.NextStep)\n}\n',
      },
      cli: {
        method: 'challenges enableBiometrics',
        example:
          "plumery auth:challenges enable-biometrics \\\n  --session 'My Session' \\\n  --enabled \\\n  --session-id 3191daaeed978b5b4bd29c161899df72",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/auth/challenges:enable-biometrics \\\n    -H \'Content-Type: application/json\' \\\n    -d \'{\n          "enabled": true,\n          "sessionId": "3191daaeed978b5b4bd29c161899df72"\n        }\'',
      },
    },
  },
  {
    name: 'initiateSigning',
    endpoint: '/api/v1/auth/challenges:initiate-signing',
    httpMethod: 'post',
    summary: 'Initiate Device Signing',
    description:
      'Use this endpoint after receiving `InitiateDeviceSigning` as next step along with the available signing methods.',
    stainlessPath: '(resource) auth.challenges > (method) initiateSigning',
    qualified: 'client.auth.challenges.initiateSigning',
    params: [
      "deviceSigningMethod: 'BIOMETRICS' | 'PASSCODE';",
      'sessionId: string;',
      'plmr-user-action?: boolean;',
    ],
    response:
      "{ nextStep: { challenge: string; info?: { status: 'PENDING_CODE' | 'PENDING_SIGNING'; verificationCode?: string; } | { verificationCode: string; } | { dataToSign: string; } | { availableSigningMethods: 'BIOMETRICS' | 'PASSCODE'[]; } | { code?: string; }; }; sessionId?: string; }",
    markdown:
      "## initiateSigning\n\n`client.auth.challenges.initiateSigning(deviceSigningMethod: 'BIOMETRICS' | 'PASSCODE', sessionId: string, plmr-user-action?: boolean): { nextStep: object; sessionId?: string; }`\n\n**post** `/api/v1/auth/challenges:initiate-signing`\n\nUse this endpoint after receiving `InitiateDeviceSigning` as next step along with the available signing methods.\n\n### Parameters\n\n- `deviceSigningMethod: 'BIOMETRICS' | 'PASSCODE'`\n  Device signing method to be used for signing.\n\n- `sessionId: string`\n  The ID of the session\n\n- `plmr-user-action?: boolean`\n\n### Returns\n\n- `{ nextStep: { challenge: string; info?: { status: 'PENDING_CODE' | 'PENDING_SIGNING'; verificationCode?: string; } | { verificationCode: string; } | { dataToSign: string; } | { availableSigningMethods: 'BIOMETRICS' | 'PASSCODE'[]; } | { code?: string; }; }; sessionId?: string; }`\n\n  - `nextStep: { challenge: string; info?: { status: 'PENDING_CODE' | 'PENDING_SIGNING'; verificationCode?: string; } | { verificationCode: string; } | { dataToSign: string; } | { availableSigningMethods: 'BIOMETRICS' | 'PASSCODE'[]; } | { code?: string; }; }`\n  - `sessionId?: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.auth.challenges.initiateSigning({ deviceSigningMethod: 'BIOMETRICS', sessionId: '3191daaeed978b5b4bd29c161899df72' });\n\nconsole.log(response);\n```",
    perLanguage: {
      typescript: {
        method: 'client.auth.challenges.initiateSigning',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.auth.challenges.initiateSigning({\n  deviceSigningMethod: 'BIOMETRICS',\n  sessionId: '3191daaeed978b5b4bd29c161899df72',\n});\n\nconsole.log(response.nextStep);",
      },
      python: {
        method: 'auth.challenges.initiate_signing',
        example:
          'from plumery import Plumery\n\nclient = Plumery()\nresponse = client.auth.challenges.initiate_signing(\n    device_signing_method="BIOMETRICS",\n    session_id="3191daaeed978b5b4bd29c161899df72",\n)\nprint(response.next_step)',
      },
      java: {
        method: 'auth().challenges().initiateSigning',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.auth.challenges.ChallengeInitiateSigningParams;\nimport com.plumery.api.models.auth.challenges.ChallengeInitiateSigningResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        ChallengeInitiateSigningParams params = ChallengeInitiateSigningParams.builder()\n            .deviceSigningMethod(ChallengeInitiateSigningParams.DeviceSigningMethod.BIOMETRICS)\n            .sessionId("3191daaeed978b5b4bd29c161899df72")\n            .build();\n        ChallengeInitiateSigningResponse response = client.auth().challenges().initiateSigning(params);\n    }\n}',
      },
      kotlin: {
        method: 'auth().challenges().initiateSigning',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.auth.challenges.ChallengeInitiateSigningParams\nimport com.plumery.api.models.auth.challenges.ChallengeInitiateSigningResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: ChallengeInitiateSigningParams = ChallengeInitiateSigningParams.builder()\n        .deviceSigningMethod(ChallengeInitiateSigningParams.DeviceSigningMethod.BIOMETRICS)\n        .sessionId("3191daaeed978b5b4bd29c161899df72")\n        .build()\n    val response: ChallengeInitiateSigningResponse = client.auth().challenges().initiateSigning(params)\n}',
      },
      go: {
        method: 'client.Auth.Challenges.InitiateSigning',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tresponse, err := client.Auth.Challenges.InitiateSigning(context.TODO(), plumery.AuthChallengeInitiateSigningParams{\n\t\tDeviceSigningMethod: plumery.F(plumery.AuthChallengeInitiateSigningParamsDeviceSigningMethodBiometrics),\n\t\tSessionID:           plumery.F("3191daaeed978b5b4bd29c161899df72"),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.NextStep)\n}\n',
      },
      cli: {
        method: 'challenges initiateSigning',
        example:
          "plumery auth:challenges initiate-signing \\\n  --session 'My Session' \\\n  --device-signing-method BIOMETRICS \\\n  --session-id 3191daaeed978b5b4bd29c161899df72",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/auth/challenges:initiate-signing \\\n    -H \'Content-Type: application/json\' \\\n    -d \'{\n          "deviceSigningMethod": "BIOMETRICS",\n          "sessionId": "3191daaeed978b5b4bd29c161899df72"\n        }\'',
      },
    },
  },
  {
    name: 'confirmPendingAuthentication',
    endpoint: '/api/v1/auth/challenges:confirm-pending-authentication',
    httpMethod: 'post',
    summary: 'Confirm Pending Authentication',
    description:
      'Final step of a pending authentication flow.  \nOnce all required challenges are completed successfully, this endpoint confirms\nthe pending authentication and finalizes the process.\n',
    stainlessPath: '(resource) auth.challenges > (method) confirmPendingAuthentication',
    qualified: 'client.auth.challenges.confirmPendingAuthentication',
    params: ['sessionId: string;', 'plmr-user-action?: boolean;'],
    markdown:
      "## confirmPendingAuthentication\n\n`client.auth.challenges.confirmPendingAuthentication(sessionId: string, plmr-user-action?: boolean): void`\n\n**post** `/api/v1/auth/challenges:confirm-pending-authentication`\n\nFinal step of a pending authentication flow.  \nOnce all required challenges are completed successfully, this endpoint confirms\nthe pending authentication and finalizes the process.\n\n\n### Parameters\n\n- `sessionId: string`\n\n- `plmr-user-action?: boolean`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nawait client.auth.challenges.confirmPendingAuthentication({ sessionId: '3191daaeed978b5b4bd29c161899df72' })\n```",
    perLanguage: {
      typescript: {
        method: 'client.auth.challenges.confirmPendingAuthentication',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery();\n\nawait client.auth.challenges.confirmPendingAuthentication({\n  sessionId: '3191daaeed978b5b4bd29c161899df72',\n});",
      },
      python: {
        method: 'auth.challenges.confirm_pending_authentication',
        example:
          'from plumery import Plumery\n\nclient = Plumery()\nclient.auth.challenges.confirm_pending_authentication(\n    session_id="3191daaeed978b5b4bd29c161899df72",\n)',
      },
      java: {
        method: 'auth().challenges().confirmPendingAuthentication',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.auth.challenges.ChallengeConfirmPendingAuthenticationParams;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        ChallengeConfirmPendingAuthenticationParams params = ChallengeConfirmPendingAuthenticationParams.builder()\n            .sessionId("3191daaeed978b5b4bd29c161899df72")\n            .build();\n        client.auth().challenges().confirmPendingAuthentication(params);\n    }\n}',
      },
      kotlin: {
        method: 'auth().challenges().confirmPendingAuthentication',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.auth.challenges.ChallengeConfirmPendingAuthenticationParams\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: ChallengeConfirmPendingAuthenticationParams = ChallengeConfirmPendingAuthenticationParams.builder()\n        .sessionId("3191daaeed978b5b4bd29c161899df72")\n        .build()\n    client.auth().challenges().confirmPendingAuthentication(params)\n}',
      },
      go: {
        method: 'client.Auth.Challenges.ConfirmPendingAuthentication',
        example:
          'package main\n\nimport (\n\t"context"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\terr := client.Auth.Challenges.ConfirmPendingAuthentication(context.TODO(), plumery.AuthChallengeConfirmPendingAuthenticationParams{\n\t\tSessionID: plumery.F("3191daaeed978b5b4bd29c161899df72"),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
      },
      cli: {
        method: 'challenges confirmPendingAuthentication',
        example:
          "plumery auth:challenges confirm-pending-authentication \\\n  --session 'My Session' \\\n  --session-id 3191daaeed978b5b4bd29c161899df72",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/auth/challenges:confirm-pending-authentication \\\n    -H \'Content-Type: application/json\' \\\n    -d \'{\n          "sessionId": "3191daaeed978b5b4bd29c161899df72"\n        }\'',
      },
    },
  },
  {
    name: 'rejectPendingAuthentication',
    endpoint: '/api/v1/auth/challenges:reject-pending-authentication',
    httpMethod: 'post',
    summary: 'Reject Pending Authentication',
    description: 'Allows the user to explicitly reject a pending authentication\n',
    stainlessPath: '(resource) auth.challenges > (method) rejectPendingAuthentication',
    qualified: 'client.auth.challenges.rejectPendingAuthentication',
    params: ['sessionId: string;', 'plmr-user-action?: boolean;'],
    markdown:
      "## rejectPendingAuthentication\n\n`client.auth.challenges.rejectPendingAuthentication(sessionId: string, plmr-user-action?: boolean): void`\n\n**post** `/api/v1/auth/challenges:reject-pending-authentication`\n\nAllows the user to explicitly reject a pending authentication\n\n\n### Parameters\n\n- `sessionId: string`\n\n- `plmr-user-action?: boolean`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nawait client.auth.challenges.rejectPendingAuthentication({ sessionId: '3191daaeed978b5b4bd29c161899df72' })\n```",
    perLanguage: {
      typescript: {
        method: 'client.auth.challenges.rejectPendingAuthentication',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery();\n\nawait client.auth.challenges.rejectPendingAuthentication({\n  sessionId: '3191daaeed978b5b4bd29c161899df72',\n});",
      },
      python: {
        method: 'auth.challenges.reject_pending_authentication',
        example:
          'from plumery import Plumery\n\nclient = Plumery()\nclient.auth.challenges.reject_pending_authentication(\n    session_id="3191daaeed978b5b4bd29c161899df72",\n)',
      },
      java: {
        method: 'auth().challenges().rejectPendingAuthentication',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.auth.challenges.ChallengeRejectPendingAuthenticationParams;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        ChallengeRejectPendingAuthenticationParams params = ChallengeRejectPendingAuthenticationParams.builder()\n            .sessionId("3191daaeed978b5b4bd29c161899df72")\n            .build();\n        client.auth().challenges().rejectPendingAuthentication(params);\n    }\n}',
      },
      kotlin: {
        method: 'auth().challenges().rejectPendingAuthentication',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.auth.challenges.ChallengeRejectPendingAuthenticationParams\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: ChallengeRejectPendingAuthenticationParams = ChallengeRejectPendingAuthenticationParams.builder()\n        .sessionId("3191daaeed978b5b4bd29c161899df72")\n        .build()\n    client.auth().challenges().rejectPendingAuthentication(params)\n}',
      },
      go: {
        method: 'client.Auth.Challenges.RejectPendingAuthentication',
        example:
          'package main\n\nimport (\n\t"context"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\terr := client.Auth.Challenges.RejectPendingAuthentication(context.TODO(), plumery.AuthChallengeRejectPendingAuthenticationParams{\n\t\tSessionID: plumery.F("3191daaeed978b5b4bd29c161899df72"),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
      },
      cli: {
        method: 'challenges rejectPendingAuthentication',
        example:
          "plumery auth:challenges reject-pending-authentication \\\n  --session 'My Session' \\\n  --session-id 3191daaeed978b5b4bd29c161899df72",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/auth/challenges:reject-pending-authentication \\\n    -H \'Content-Type: application/json\' \\\n    -d \'{\n          "sessionId": "3191daaeed978b5b4bd29c161899df72"\n        }\'',
      },
    },
  },
  {
    name: 'verify',
    endpoint: '/api/v1/auth/challenges/otp:verify',
    httpMethod: 'post',
    summary: 'Verify OTP',
    description:
      'Use this endpoint after receiving `OTP` as next step. \n\nIf OTP verified successfully, next step is to either accepting terms and conditions if that was not done\nbefore or confirm of the session.',
    stainlessPath: '(resource) auth.challenges.otp > (method) verify',
    qualified: 'client.auth.challenges.otp.verify',
    params: ['code: string;', 'sessionId: string;', 'plmr-user-action?: boolean;'],
    response:
      "{ nextStep: { challenge: string; info?: { status: 'PENDING_CODE' | 'PENDING_SIGNING'; verificationCode?: string; } | { verificationCode: string; } | { dataToSign: string; } | { availableSigningMethods: 'BIOMETRICS' | 'PASSCODE'[]; } | { code?: string; }; }; sessionId?: string; }",
    markdown:
      "## verify\n\n`client.auth.challenges.otp.verify(code: string, sessionId: string, plmr-user-action?: boolean): { nextStep: object; sessionId?: string; }`\n\n**post** `/api/v1/auth/challenges/otp:verify`\n\nUse this endpoint after receiving `OTP` as next step. \n\nIf OTP verified successfully, next step is to either accepting terms and conditions if that was not done\nbefore or confirm of the session.\n\n### Parameters\n\n- `code: string`\n  The OTP code provided to the user\n\n- `sessionId: string`\n  the ID of the session\n\n- `plmr-user-action?: boolean`\n\n### Returns\n\n- `{ nextStep: { challenge: string; info?: { status: 'PENDING_CODE' | 'PENDING_SIGNING'; verificationCode?: string; } | { verificationCode: string; } | { dataToSign: string; } | { availableSigningMethods: 'BIOMETRICS' | 'PASSCODE'[]; } | { code?: string; }; }; sessionId?: string; }`\n\n  - `nextStep: { challenge: string; info?: { status: 'PENDING_CODE' | 'PENDING_SIGNING'; verificationCode?: string; } | { verificationCode: string; } | { dataToSign: string; } | { availableSigningMethods: 'BIOMETRICS' | 'PASSCODE'[]; } | { code?: string; }; }`\n  - `sessionId?: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.auth.challenges.otp.verify({ code: '123456', sessionId: '3191daaeed978b5b4bd29c161899df72' });\n\nconsole.log(response);\n```",
    perLanguage: {
      typescript: {
        method: 'client.auth.challenges.otp.verify',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.auth.challenges.otp.verify({\n  code: '123456',\n  sessionId: '3191daaeed978b5b4bd29c161899df72',\n});\n\nconsole.log(response.nextStep);",
      },
      python: {
        method: 'auth.challenges.otp.verify',
        example:
          'from plumery import Plumery\n\nclient = Plumery()\nresponse = client.auth.challenges.otp.verify(\n    code="123456",\n    session_id="3191daaeed978b5b4bd29c161899df72",\n)\nprint(response.next_step)',
      },
      java: {
        method: 'auth().challenges().otp().verify',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.auth.challenges.otp.OtpVerifyParams;\nimport com.plumery.api.models.auth.challenges.otp.OtpVerifyResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        OtpVerifyParams params = OtpVerifyParams.builder()\n            .code("123456")\n            .sessionId("3191daaeed978b5b4bd29c161899df72")\n            .build();\n        OtpVerifyResponse response = client.auth().challenges().otp().verify(params);\n    }\n}',
      },
      kotlin: {
        method: 'auth().challenges().otp().verify',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.auth.challenges.otp.OtpVerifyParams\nimport com.plumery.api.models.auth.challenges.otp.OtpVerifyResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: OtpVerifyParams = OtpVerifyParams.builder()\n        .code("123456")\n        .sessionId("3191daaeed978b5b4bd29c161899df72")\n        .build()\n    val response: OtpVerifyResponse = client.auth().challenges().otp().verify(params)\n}',
      },
      go: {
        method: 'client.Auth.Challenges.Otp.Verify',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tresponse, err := client.Auth.Challenges.Otp.Verify(context.TODO(), plumery.AuthChallengeOtpVerifyParams{\n\t\tCode:      plumery.F("123456"),\n\t\tSessionID: plumery.F("3191daaeed978b5b4bd29c161899df72"),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.NextStep)\n}\n',
      },
      cli: {
        method: 'otp verify',
        example:
          "plumery auth:challenges:otp verify \\\n  --session 'My Session' \\\n  --code 123456 \\\n  --session-id 3191daaeed978b5b4bd29c161899df72",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/auth/challenges/otp:verify \\\n    -H \'Content-Type: application/json\' \\\n    -d \'{\n          "code": "123456",\n          "sessionId": "3191daaeed978b5b4bd29c161899df72"\n        }\'',
      },
    },
  },
  {
    name: 'confirm',
    endpoint: '/api/v1/auth/challenges/sk-id:confirm',
    httpMethod: 'post',
    summary: 'Confirm SK-ID Authentication',
    description:
      'Use this endpoint after receiving a next step from either the Smart-ID or Mobile-ID login endpoints.\nThis confirms the SK-ID authentication process and progresses to the next step in the authentication flow.',
    stainlessPath: '(resource) auth.challenges.sk-id > (method) confirm',
    qualified: 'client.auth.challenges.skID.confirm',
    params: ['sessionId: string;', 'plmr-user-action?: boolean;'],
    response:
      "{ nextStep: { challenge: string; info?: { status: 'PENDING_CODE' | 'PENDING_SIGNING'; verificationCode?: string; } | { verificationCode: string; } | { dataToSign: string; } | { availableSigningMethods: 'BIOMETRICS' | 'PASSCODE'[]; } | { code?: string; }; }; sessionId?: string; }",
    markdown:
      "## confirm\n\n`client.auth.challenges.skID.confirm(sessionId: string, plmr-user-action?: boolean): { nextStep: object; sessionId?: string; }`\n\n**post** `/api/v1/auth/challenges/sk-id:confirm`\n\nUse this endpoint after receiving a next step from either the Smart-ID or Mobile-ID login endpoints.\nThis confirms the SK-ID authentication process and progresses to the next step in the authentication flow.\n\n### Parameters\n\n- `sessionId: string`\n  The ID of the session\n\n- `plmr-user-action?: boolean`\n\n### Returns\n\n- `{ nextStep: { challenge: string; info?: { status: 'PENDING_CODE' | 'PENDING_SIGNING'; verificationCode?: string; } | { verificationCode: string; } | { dataToSign: string; } | { availableSigningMethods: 'BIOMETRICS' | 'PASSCODE'[]; } | { code?: string; }; }; sessionId?: string; }`\n\n  - `nextStep: { challenge: string; info?: { status: 'PENDING_CODE' | 'PENDING_SIGNING'; verificationCode?: string; } | { verificationCode: string; } | { dataToSign: string; } | { availableSigningMethods: 'BIOMETRICS' | 'PASSCODE'[]; } | { code?: string; }; }`\n  - `sessionId?: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.auth.challenges.skID.confirm({ sessionId: '3191daaeed978b5b4bd29c161899df72' });\n\nconsole.log(response);\n```",
    perLanguage: {
      typescript: {
        method: 'client.auth.challenges.skID.confirm',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.auth.challenges.skID.confirm({\n  sessionId: '3191daaeed978b5b4bd29c161899df72',\n});\n\nconsole.log(response.nextStep);",
      },
      python: {
        method: 'auth.challenges.sk_id.confirm',
        example:
          'from plumery import Plumery\n\nclient = Plumery()\nresponse = client.auth.challenges.sk_id.confirm(\n    session_id="3191daaeed978b5b4bd29c161899df72",\n)\nprint(response.next_step)',
      },
      java: {
        method: 'auth().challenges().skId().confirm',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.auth.challenges.skid.SkIdConfirmParams;\nimport com.plumery.api.models.auth.challenges.skid.SkIdConfirmResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        SkIdConfirmParams params = SkIdConfirmParams.builder()\n            .sessionId("3191daaeed978b5b4bd29c161899df72")\n            .build();\n        SkIdConfirmResponse response = client.auth().challenges().skId().confirm(params);\n    }\n}',
      },
      kotlin: {
        method: 'auth().challenges().skId().confirm',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.auth.challenges.skid.SkIdConfirmParams\nimport com.plumery.api.models.auth.challenges.skid.SkIdConfirmResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: SkIdConfirmParams = SkIdConfirmParams.builder()\n        .sessionId("3191daaeed978b5b4bd29c161899df72")\n        .build()\n    val response: SkIdConfirmResponse = client.auth().challenges().skId().confirm(params)\n}',
      },
      go: {
        method: 'client.Auth.Challenges.SkID.Confirm',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tresponse, err := client.Auth.Challenges.SkID.Confirm(context.TODO(), plumery.AuthChallengeSkIDConfirmParams{\n\t\tSessionID: plumery.F("3191daaeed978b5b4bd29c161899df72"),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.NextStep)\n}\n',
      },
      cli: {
        method: 'sk-id confirm',
        example:
          "plumery auth:challenges:sk-id confirm \\\n  --session 'My Session' \\\n  --session-id 3191daaeed978b5b4bd29c161899df72",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/auth/challenges/sk-id:confirm \\\n    -H \'Content-Type: application/json\' \\\n    -d \'{\n          "sessionId": "3191daaeed978b5b4bd29c161899df72"\n        }\'',
      },
    },
  },
  {
    name: 'sign',
    endpoint: '/api/v1/auth/challenges/sk-id:sign',
    httpMethod: 'post',
    summary: 'Confirm SK-ID Signature Challenge',
    description:
      'Use this endpoint to confirm the SK-ID signature challenge after receiving it in the Smart-ID/Mobile-ID login flow.',
    stainlessPath: '(resource) auth.challenges.sk-id > (method) sign',
    qualified: 'client.auth.challenges.skID.sign',
    params: ['sessionId: string;', 'plmr-user-action?: boolean;'],
    response:
      "{ nextStep: { challenge: string; info?: { status: 'PENDING_CODE' | 'PENDING_SIGNING'; verificationCode?: string; } | { verificationCode: string; } | { dataToSign: string; } | { availableSigningMethods: 'BIOMETRICS' | 'PASSCODE'[]; } | { code?: string; }; }; sessionId?: string; }",
    markdown:
      "## sign\n\n`client.auth.challenges.skID.sign(sessionId: string, plmr-user-action?: boolean): { nextStep: object; sessionId?: string; }`\n\n**post** `/api/v1/auth/challenges/sk-id:sign`\n\nUse this endpoint to confirm the SK-ID signature challenge after receiving it in the Smart-ID/Mobile-ID login flow.\n\n### Parameters\n\n- `sessionId: string`\n  The ID of the session\n\n- `plmr-user-action?: boolean`\n\n### Returns\n\n- `{ nextStep: { challenge: string; info?: { status: 'PENDING_CODE' | 'PENDING_SIGNING'; verificationCode?: string; } | { verificationCode: string; } | { dataToSign: string; } | { availableSigningMethods: 'BIOMETRICS' | 'PASSCODE'[]; } | { code?: string; }; }; sessionId?: string; }`\n\n  - `nextStep: { challenge: string; info?: { status: 'PENDING_CODE' | 'PENDING_SIGNING'; verificationCode?: string; } | { verificationCode: string; } | { dataToSign: string; } | { availableSigningMethods: 'BIOMETRICS' | 'PASSCODE'[]; } | { code?: string; }; }`\n  - `sessionId?: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.auth.challenges.skID.sign({ sessionId: '3191daaeed978b5b4bd29c161899df72' });\n\nconsole.log(response);\n```",
    perLanguage: {
      typescript: {
        method: 'client.auth.challenges.skID.sign',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.auth.challenges.skID.sign({\n  sessionId: '3191daaeed978b5b4bd29c161899df72',\n});\n\nconsole.log(response.nextStep);",
      },
      python: {
        method: 'auth.challenges.sk_id.sign',
        example:
          'from plumery import Plumery\n\nclient = Plumery()\nresponse = client.auth.challenges.sk_id.sign(\n    session_id="3191daaeed978b5b4bd29c161899df72",\n)\nprint(response.next_step)',
      },
      java: {
        method: 'auth().challenges().skId().sign',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.auth.challenges.skid.SkIdSignParams;\nimport com.plumery.api.models.auth.challenges.skid.SkIdSignResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        SkIdSignParams params = SkIdSignParams.builder()\n            .sessionId("3191daaeed978b5b4bd29c161899df72")\n            .build();\n        SkIdSignResponse response = client.auth().challenges().skId().sign(params);\n    }\n}',
      },
      kotlin: {
        method: 'auth().challenges().skId().sign',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.auth.challenges.skid.SkIdSignParams\nimport com.plumery.api.models.auth.challenges.skid.SkIdSignResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: SkIdSignParams = SkIdSignParams.builder()\n        .sessionId("3191daaeed978b5b4bd29c161899df72")\n        .build()\n    val response: SkIdSignResponse = client.auth().challenges().skId().sign(params)\n}',
      },
      go: {
        method: 'client.Auth.Challenges.SkID.Sign',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tresponse, err := client.Auth.Challenges.SkID.Sign(context.TODO(), plumery.AuthChallengeSkIDSignParams{\n\t\tSessionID: plumery.F("3191daaeed978b5b4bd29c161899df72"),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.NextStep)\n}\n',
      },
      cli: {
        method: 'sk-id sign',
        example:
          "plumery auth:challenges:sk-id sign \\\n  --session 'My Session' \\\n  --session-id 3191daaeed978b5b4bd29c161899df72",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/auth/challenges/sk-id:sign \\\n    -H \'Content-Type: application/json\' \\\n    -d \'{\n          "sessionId": "3191daaeed978b5b4bd29c161899df72"\n        }\'',
      },
    },
  },
  {
    name: 'accept',
    endpoint: '/api/v1/auth/challenges/terms-and-conditions:accept',
    httpMethod: 'post',
    summary: 'Accept terms and conditions',
    description:
      'Use this endpoint after receiving `TermsAndConditions` as next step. \n\nIf accepted, next step is to confirm the session.',
    stainlessPath: '(resource) auth.challenges.terms-and-conditions > (method) accept',
    qualified: 'client.auth.challenges.termsAndConditions.accept',
    params: [
      'sessionId: string;',
      'termsAndConditions: { acceptVersion: string; type: string; }[];',
      'plmr-user-action?: boolean;',
    ],
    response:
      "{ nextStep: { challenge: string; info?: { status: 'PENDING_CODE' | 'PENDING_SIGNING'; verificationCode?: string; } | { verificationCode: string; } | { dataToSign: string; } | { availableSigningMethods: 'BIOMETRICS' | 'PASSCODE'[]; } | { code?: string; }; }; sessionId?: string; }",
    markdown:
      "## accept\n\n`client.auth.challenges.termsAndConditions.accept(sessionId: string, termsAndConditions: { acceptVersion: string; type: string; }[], plmr-user-action?: boolean): { nextStep: object; sessionId?: string; }`\n\n**post** `/api/v1/auth/challenges/terms-and-conditions:accept`\n\nUse this endpoint after receiving `TermsAndConditions` as next step. \n\nIf accepted, next step is to confirm the session.\n\n### Parameters\n\n- `sessionId: string`\n  the ID of the session\n\n- `termsAndConditions: { acceptVersion: string; type: string; }[]`\n  list of terms and conditions that needs to be accepted\n\n- `plmr-user-action?: boolean`\n\n### Returns\n\n- `{ nextStep: { challenge: string; info?: { status: 'PENDING_CODE' | 'PENDING_SIGNING'; verificationCode?: string; } | { verificationCode: string; } | { dataToSign: string; } | { availableSigningMethods: 'BIOMETRICS' | 'PASSCODE'[]; } | { code?: string; }; }; sessionId?: string; }`\n\n  - `nextStep: { challenge: string; info?: { status: 'PENDING_CODE' | 'PENDING_SIGNING'; verificationCode?: string; } | { verificationCode: string; } | { dataToSign: string; } | { availableSigningMethods: 'BIOMETRICS' | 'PASSCODE'[]; } | { code?: string; }; }`\n  - `sessionId?: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.auth.challenges.termsAndConditions.accept({ sessionId: '3191daaeed978b5b4bd29c161899df72', termsAndConditions: [{ acceptVersion: 'v1.0', type: 'PrivacyPolicy' }] });\n\nconsole.log(response);\n```",
    perLanguage: {
      typescript: {
        method: 'client.auth.challenges.termsAndConditions.accept',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.auth.challenges.termsAndConditions.accept({\n  sessionId: '3191daaeed978b5b4bd29c161899df72',\n  termsAndConditions: [{ acceptVersion: 'v1.0', type: 'PrivacyPolicy' }],\n});\n\nconsole.log(response.nextStep);",
      },
      python: {
        method: 'auth.challenges.terms_and_conditions.accept',
        example:
          'from plumery import Plumery\n\nclient = Plumery()\nresponse = client.auth.challenges.terms_and_conditions.accept(\n    session_id="3191daaeed978b5b4bd29c161899df72",\n    terms_and_conditions=[{\n        "accept_version": "v1.0",\n        "type": "PrivacyPolicy",\n    }],\n)\nprint(response.next_step)',
      },
      java: {
        method: 'auth().challenges().termsAndConditions().accept',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.auth.challenges.termsandconditions.TermsAndConditionAcceptParams;\nimport com.plumery.api.models.auth.challenges.termsandconditions.TermsAndConditionAcceptResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        TermsAndConditionAcceptParams params = TermsAndConditionAcceptParams.builder()\n            .sessionId("3191daaeed978b5b4bd29c161899df72")\n            .addTermsAndCondition(TermsAndConditionAcceptParams.TermsAndCondition.builder()\n                .acceptVersion("v1.0")\n                .type("PrivacyPolicy")\n                .build())\n            .build();\n        TermsAndConditionAcceptResponse response = client.auth().challenges().termsAndConditions().accept(params);\n    }\n}',
      },
      kotlin: {
        method: 'auth().challenges().termsAndConditions().accept',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.auth.challenges.termsandconditions.TermsAndConditionAcceptParams\nimport com.plumery.api.models.auth.challenges.termsandconditions.TermsAndConditionAcceptResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: TermsAndConditionAcceptParams = TermsAndConditionAcceptParams.builder()\n        .sessionId("3191daaeed978b5b4bd29c161899df72")\n        .addTermsAndCondition(TermsAndConditionAcceptParams.TermsAndCondition.builder()\n            .acceptVersion("v1.0")\n            .type("PrivacyPolicy")\n            .build())\n        .build()\n    val response: TermsAndConditionAcceptResponse = client.auth().challenges().termsAndConditions().accept(params)\n}',
      },
      go: {
        method: 'client.Auth.Challenges.TermsAndConditions.Accept',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tresponse, err := client.Auth.Challenges.TermsAndConditions.Accept(context.TODO(), plumery.AuthChallengeTermsAndConditionAcceptParams{\n\t\tSessionID: plumery.F("3191daaeed978b5b4bd29c161899df72"),\n\t\tTermsAndConditions: plumery.F([]plumery.AuthChallengeTermsAndConditionAcceptParamsTermsAndCondition{{\n\t\t\tAcceptVersion: plumery.F("v1.0"),\n\t\t\tType:          plumery.F("PrivacyPolicy"),\n\t\t}}),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.NextStep)\n}\n',
      },
      cli: {
        method: 'terms-and-conditions accept',
        example:
          "plumery auth:challenges:terms-and-conditions accept \\\n  --session 'My Session' \\\n  --session-id 3191daaeed978b5b4bd29c161899df72 \\\n  --terms-and-condition '{acceptVersion: v1.0, type: PrivacyPolicy}'",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/auth/challenges/terms-and-conditions:accept \\\n    -H \'Content-Type: application/json\' \\\n    -d \'{\n          "sessionId": "3191daaeed978b5b4bd29c161899df72",\n          "termsAndConditions": [\n            {\n              "acceptVersion": "v1.0",\n              "type": "PrivacyPolicy"\n            }\n          ]\n        }\'',
      },
    },
  },
  {
    name: 'initiateSigning',
    endpoint: '/api/v1/auth/challenges/custom:initiate-signing',
    httpMethod: 'post',
    summary: 'Custom Signing Initiation',
    description:
      'Use this endpoint after receiving `InitiateCustomSigning` as next step from the Custom Login endpoint.\nThis initiates the custom signing process and provides the necessary details to proceed with the signing.',
    stainlessPath: '(resource) auth.challenges.custom > (method) initiateSigning',
    qualified: 'client.auth.challenges.custom.initiateSigning',
    params: ['method: string;', 'sessionId: string;', 'additionalDetails?: object;'],
    response:
      "{ nextStep: { challenge: string; info?: { status: 'PENDING_CODE' | 'PENDING_SIGNING'; verificationCode?: string; } | { verificationCode: string; } | { dataToSign: string; } | { availableSigningMethods: 'BIOMETRICS' | 'PASSCODE'[]; } | { code?: string; }; }; sessionId?: string; }",
    markdown:
      "## initiateSigning\n\n`client.auth.challenges.custom.initiateSigning(method: string, sessionId: string, additionalDetails?: object): { nextStep: object; sessionId?: string; }`\n\n**post** `/api/v1/auth/challenges/custom:initiate-signing`\n\nUse this endpoint after receiving `InitiateCustomSigning` as next step from the Custom Login endpoint.\nThis initiates the custom signing process and provides the necessary details to proceed with the signing.\n\n### Parameters\n\n- `method: string`\n  Indicates the custom signing method.\n\n- `sessionId: string`\n  The ID of the session\n\n- `additionalDetails?: object`\n  Additional details required for the custom signing method.\n\n### Returns\n\n- `{ nextStep: { challenge: string; info?: { status: 'PENDING_CODE' | 'PENDING_SIGNING'; verificationCode?: string; } | { verificationCode: string; } | { dataToSign: string; } | { availableSigningMethods: 'BIOMETRICS' | 'PASSCODE'[]; } | { code?: string; }; }; sessionId?: string; }`\n\n  - `nextStep: { challenge: string; info?: { status: 'PENDING_CODE' | 'PENDING_SIGNING'; verificationCode?: string; } | { verificationCode: string; } | { dataToSign: string; } | { availableSigningMethods: 'BIOMETRICS' | 'PASSCODE'[]; } | { code?: string; }; }`\n  - `sessionId?: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.auth.challenges.custom.initiateSigning({ method: 'method', sessionId: '3191daaeed978b5b4bd29c161899df72' });\n\nconsole.log(response);\n```",
    perLanguage: {
      typescript: {
        method: 'client.auth.challenges.custom.initiateSigning',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.auth.challenges.custom.initiateSigning({\n  method: 'method',\n  sessionId: '3191daaeed978b5b4bd29c161899df72',\n});\n\nconsole.log(response.nextStep);",
      },
      python: {
        method: 'auth.challenges.custom.initiate_signing',
        example:
          'from plumery import Plumery\n\nclient = Plumery()\nresponse = client.auth.challenges.custom.initiate_signing(\n    method="method",\n    session_id="3191daaeed978b5b4bd29c161899df72",\n)\nprint(response.next_step)',
      },
      java: {
        method: 'auth().challenges().custom().initiateSigning',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.auth.challenges.custom.CustomInitiateSigningParams;\nimport com.plumery.api.models.auth.challenges.custom.CustomInitiateSigningResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        CustomInitiateSigningParams params = CustomInitiateSigningParams.builder()\n            .method("method")\n            .sessionId("3191daaeed978b5b4bd29c161899df72")\n            .build();\n        CustomInitiateSigningResponse response = client.auth().challenges().custom().initiateSigning(params);\n    }\n}',
      },
      kotlin: {
        method: 'auth().challenges().custom().initiateSigning',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.auth.challenges.custom.CustomInitiateSigningParams\nimport com.plumery.api.models.auth.challenges.custom.CustomInitiateSigningResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: CustomInitiateSigningParams = CustomInitiateSigningParams.builder()\n        .method("method")\n        .sessionId("3191daaeed978b5b4bd29c161899df72")\n        .build()\n    val response: CustomInitiateSigningResponse = client.auth().challenges().custom().initiateSigning(params)\n}',
      },
      go: {
        method: 'client.Auth.Challenges.Custom.InitiateSigning',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tresponse, err := client.Auth.Challenges.Custom.InitiateSigning(context.TODO(), plumery.AuthChallengeCustomInitiateSigningParams{\n\t\tMethod:    plumery.F("method"),\n\t\tSessionID: plumery.F("3191daaeed978b5b4bd29c161899df72"),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.NextStep)\n}\n',
      },
      cli: {
        method: 'custom initiateSigning',
        example:
          "plumery auth:challenges:custom initiate-signing \\\n  --session 'My Session' \\\n  --method method \\\n  --session-id 3191daaeed978b5b4bd29c161899df72",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/auth/challenges/custom:initiate-signing \\\n    -H \'Content-Type: application/json\' \\\n    -d \'{\n          "method": "method",\n          "sessionId": "3191daaeed978b5b4bd29c161899df72"\n        }\'',
      },
    },
  },
  {
    name: 'confirm',
    endpoint: '/api/v1/auth/challenges/custom:confirm',
    httpMethod: 'post',
    summary: 'Custom Signing Confirmation',
    description:
      'Use this endpoint after receiving `CustomSigning` as next step from the Custom Signing Initiation endpoint.\nThis confirms the custom signing process and progresses to the next step in the authentication flow.',
    stainlessPath: '(resource) auth.challenges.custom > (method) confirm',
    qualified: 'client.auth.challenges.custom.confirm',
    params: ['sessionId: string;', 'additionalDetails?: object;'],
    response:
      "{ nextStep: { challenge: string; info?: { status: 'PENDING_CODE' | 'PENDING_SIGNING'; verificationCode?: string; } | { verificationCode: string; } | { dataToSign: string; } | { availableSigningMethods: 'BIOMETRICS' | 'PASSCODE'[]; } | { code?: string; }; }; sessionId?: string; }",
    markdown:
      "## confirm\n\n`client.auth.challenges.custom.confirm(sessionId: string, additionalDetails?: object): { nextStep: object; sessionId?: string; }`\n\n**post** `/api/v1/auth/challenges/custom:confirm`\n\nUse this endpoint after receiving `CustomSigning` as next step from the Custom Signing Initiation endpoint.\nThis confirms the custom signing process and progresses to the next step in the authentication flow.\n\n### Parameters\n\n- `sessionId: string`\n  The ID of the session\n\n- `additionalDetails?: object`\n  Additional details required for the custom signing method.\n\n### Returns\n\n- `{ nextStep: { challenge: string; info?: { status: 'PENDING_CODE' | 'PENDING_SIGNING'; verificationCode?: string; } | { verificationCode: string; } | { dataToSign: string; } | { availableSigningMethods: 'BIOMETRICS' | 'PASSCODE'[]; } | { code?: string; }; }; sessionId?: string; }`\n\n  - `nextStep: { challenge: string; info?: { status: 'PENDING_CODE' | 'PENDING_SIGNING'; verificationCode?: string; } | { verificationCode: string; } | { dataToSign: string; } | { availableSigningMethods: 'BIOMETRICS' | 'PASSCODE'[]; } | { code?: string; }; }`\n  - `sessionId?: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.auth.challenges.custom.confirm({ sessionId: '3191daaeed978b5b4bd29c161899df72' });\n\nconsole.log(response);\n```",
    perLanguage: {
      typescript: {
        method: 'client.auth.challenges.custom.confirm',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.auth.challenges.custom.confirm({\n  sessionId: '3191daaeed978b5b4bd29c161899df72',\n});\n\nconsole.log(response.nextStep);",
      },
      python: {
        method: 'auth.challenges.custom.confirm',
        example:
          'from plumery import Plumery\n\nclient = Plumery()\nresponse = client.auth.challenges.custom.confirm(\n    session_id="3191daaeed978b5b4bd29c161899df72",\n)\nprint(response.next_step)',
      },
      java: {
        method: 'auth().challenges().custom().confirm',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.auth.challenges.custom.CustomConfirmParams;\nimport com.plumery.api.models.auth.challenges.custom.CustomConfirmResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        CustomConfirmParams params = CustomConfirmParams.builder()\n            .sessionId("3191daaeed978b5b4bd29c161899df72")\n            .build();\n        CustomConfirmResponse response = client.auth().challenges().custom().confirm(params);\n    }\n}',
      },
      kotlin: {
        method: 'auth().challenges().custom().confirm',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.auth.challenges.custom.CustomConfirmParams\nimport com.plumery.api.models.auth.challenges.custom.CustomConfirmResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: CustomConfirmParams = CustomConfirmParams.builder()\n        .sessionId("3191daaeed978b5b4bd29c161899df72")\n        .build()\n    val response: CustomConfirmResponse = client.auth().challenges().custom().confirm(params)\n}',
      },
      go: {
        method: 'client.Auth.Challenges.Custom.Confirm',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tresponse, err := client.Auth.Challenges.Custom.Confirm(context.TODO(), plumery.AuthChallengeCustomConfirmParams{\n\t\tSessionID: plumery.F("3191daaeed978b5b4bd29c161899df72"),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.NextStep)\n}\n',
      },
      cli: {
        method: 'custom confirm',
        example:
          "plumery auth:challenges:custom confirm \\\n  --session 'My Session' \\\n  --session-id 3191daaeed978b5b4bd29c161899df72",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/auth/challenges/custom:confirm \\\n    -H \'Content-Type: application/json\' \\\n    -d \'{\n          "sessionId": "3191daaeed978b5b4bd29c161899df72"\n        }\'',
      },
    },
  },
  {
    name: 'confirm',
    endpoint: '/api/v1/auth/challenges/login-custom:confirm',
    httpMethod: 'post',
    summary: 'Confirm Custom Authentication',
    description:
      'Use this endpoint after receiving a next step from the Custom Login endpoint.\nThis confirms the custom authentication process and progresses to the next step in the authentication flow.',
    stainlessPath: '(resource) auth.challenges.login-custom > (method) confirm',
    qualified: 'client.auth.challenges.loginCustom.confirm',
    params: ['confirmationDetails?: object;', 'sessionId?: string;', 'plmr-user-action?: boolean;'],
    response:
      "{ nextStep: { challenge: string; info?: { status: 'PENDING_CODE' | 'PENDING_SIGNING'; verificationCode?: string; } | { verificationCode: string; } | { dataToSign: string; } | { availableSigningMethods: 'BIOMETRICS' | 'PASSCODE'[]; } | { code?: string; }; }; sessionId?: string; }",
    markdown:
      "## confirm\n\n`client.auth.challenges.loginCustom.confirm(confirmationDetails?: object, sessionId?: string, plmr-user-action?: boolean): { nextStep: object; sessionId?: string; }`\n\n**post** `/api/v1/auth/challenges/login-custom:confirm`\n\nUse this endpoint after receiving a next step from the Custom Login endpoint.\nThis confirms the custom authentication process and progresses to the next step in the authentication flow.\n\n### Parameters\n\n- `confirmationDetails?: object`\n  Additional details required for confirming the custom login.\n\n- `sessionId?: string`\n  The ID of the session\n\n- `plmr-user-action?: boolean`\n\n### Returns\n\n- `{ nextStep: { challenge: string; info?: { status: 'PENDING_CODE' | 'PENDING_SIGNING'; verificationCode?: string; } | { verificationCode: string; } | { dataToSign: string; } | { availableSigningMethods: 'BIOMETRICS' | 'PASSCODE'[]; } | { code?: string; }; }; sessionId?: string; }`\n\n  - `nextStep: { challenge: string; info?: { status: 'PENDING_CODE' | 'PENDING_SIGNING'; verificationCode?: string; } | { verificationCode: string; } | { dataToSign: string; } | { availableSigningMethods: 'BIOMETRICS' | 'PASSCODE'[]; } | { code?: string; }; }`\n  - `sessionId?: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.auth.challenges.loginCustom.confirm();\n\nconsole.log(response);\n```",
    perLanguage: {
      typescript: {
        method: 'client.auth.challenges.loginCustom.confirm',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.auth.challenges.loginCustom.confirm();\n\nconsole.log(response.nextStep);",
      },
      python: {
        method: 'auth.challenges.login_custom.confirm',
        example:
          'from plumery import Plumery\n\nclient = Plumery()\nresponse = client.auth.challenges.login_custom.confirm()\nprint(response.next_step)',
      },
      java: {
        method: 'auth().challenges().loginCustom().confirm',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.auth.challenges.logincustom.LoginCustomConfirmParams;\nimport com.plumery.api.models.auth.challenges.logincustom.LoginCustomConfirmResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        LoginCustomConfirmResponse response = client.auth().challenges().loginCustom().confirm();\n    }\n}',
      },
      kotlin: {
        method: 'auth().challenges().loginCustom().confirm',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.auth.challenges.logincustom.LoginCustomConfirmParams\nimport com.plumery.api.models.auth.challenges.logincustom.LoginCustomConfirmResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val response: LoginCustomConfirmResponse = client.auth().challenges().loginCustom().confirm()\n}',
      },
      go: {
        method: 'client.Auth.Challenges.LoginCustom.Confirm',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tresponse, err := client.Auth.Challenges.LoginCustom.Confirm(context.TODO(), plumery.AuthChallengeLoginCustomConfirmParams{})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.NextStep)\n}\n',
      },
      cli: {
        method: 'login-custom confirm',
        example: "plumery auth:challenges:login-custom confirm \\\n  --session 'My Session'",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/auth/challenges/login-custom:confirm \\\n    -H \'Content-Type: application/json\' \\\n    -d \'{\n          "sessionId": "3191daaeed978b5b4bd29c161899df72"\n        }\'',
      },
    },
  },
  {
    name: 'create',
    endpoint: '/api/v1/auth/challenges/cross-device:create',
    httpMethod: 'post',
    summary: 'Cross device create session',
    description: 'Creates a  plumery session based on the provided crossDeviceSecret.',
    stainlessPath: '(resource) auth.challenges.cross-device > (method) create',
    qualified: 'client.auth.challenges.crossDevice.create',
    params: ['crossDeviceSecret: string;'],
    response:
      '{ nextStep: { challenge: string; info?: { activityType: string; approvalNonce: string; confirmationExpiration: string; deviceIp: string; deviceName: string; loginDateTime: string; deviceLocation?: object; visualVerificationCode?: string; }; }; sessionId?: string; }',
    markdown:
      "## create\n\n`client.auth.challenges.crossDevice.create(crossDeviceSecret: string): { nextStep: object; sessionId?: string; }`\n\n**post** `/api/v1/auth/challenges/cross-device:create`\n\nCreates a  plumery session based on the provided crossDeviceSecret.\n\n### Parameters\n\n- `crossDeviceSecret: string`\n  A base 64 encoded string that is used to pass cross device session information between devices.\n\n### Returns\n\n- `{ nextStep: { challenge: string; info?: { activityType: string; approvalNonce: string; confirmationExpiration: string; deviceIp: string; deviceName: string; loginDateTime: string; deviceLocation?: object; visualVerificationCode?: string; }; }; sessionId?: string; }`\n\n  - `nextStep: { challenge: string; info?: { activityType: string; approvalNonce: string; confirmationExpiration: string; deviceIp: string; deviceName: string; loginDateTime: string; deviceLocation?: { city?: string; country?: string; countryCode?: string; region?: string; status?: 'RESOLVED' | 'NOT_FOUND' | 'UNAVAILABLE' | 'INVALID_IP'; }; visualVerificationCode?: string; }; }`\n  - `sessionId?: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst crossDevice = await client.auth.challenges.crossDevice.create({ crossDeviceSecret: 'crossDeviceSecret' });\n\nconsole.log(crossDevice);\n```",
    perLanguage: {
      typescript: {
        method: 'client.auth.challenges.crossDevice.create',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst crossDevice = await client.auth.challenges.crossDevice.create({\n  crossDeviceSecret: 'crossDeviceSecret',\n});\n\nconsole.log(crossDevice.nextStep);",
      },
      python: {
        method: 'auth.challenges.cross_device.create',
        example:
          'from plumery import Plumery\n\nclient = Plumery()\ncross_device = client.auth.challenges.cross_device.create(\n    cross_device_secret="crossDeviceSecret",\n)\nprint(cross_device.next_step)',
      },
      java: {
        method: 'auth().challenges().crossDevice().create',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.auth.challenges.crossdevice.CrossDeviceCreateParams;\nimport com.plumery.api.models.auth.challenges.crossdevice.CrossDeviceCreateResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        CrossDeviceCreateParams params = CrossDeviceCreateParams.builder()\n            .crossDeviceSecret("crossDeviceSecret")\n            .build();\n        CrossDeviceCreateResponse crossDevice = client.auth().challenges().crossDevice().create(params);\n    }\n}',
      },
      kotlin: {
        method: 'auth().challenges().crossDevice().create',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.auth.challenges.crossdevice.CrossDeviceCreateParams\nimport com.plumery.api.models.auth.challenges.crossdevice.CrossDeviceCreateResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: CrossDeviceCreateParams = CrossDeviceCreateParams.builder()\n        .crossDeviceSecret("crossDeviceSecret")\n        .build()\n    val crossDevice: CrossDeviceCreateResponse = client.auth().challenges().crossDevice().create(params)\n}',
      },
      go: {
        method: 'client.Auth.Challenges.CrossDevice.New',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tcrossDevice, err := client.Auth.Challenges.CrossDevice.New(context.TODO(), plumery.AuthChallengeCrossDeviceNewParams{\n\t\tCrossDeviceSecret: plumery.F("crossDeviceSecret"),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", crossDevice.NextStep)\n}\n',
      },
      cli: {
        method: 'cross-device create',
        example:
          "plumery auth:challenges:cross-device create \\\n  --session 'My Session' \\\n  --cross-device-secret crossDeviceSecret",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/auth/challenges/cross-device:create \\\n    -H \'Content-Type: application/json\' \\\n    -d \'{\n          "crossDeviceSecret": "crossDeviceSecret"\n        }\'',
      },
    },
  },
  {
    name: 'confirm',
    endpoint: '/api/v1/auth/challenges/cross-device:confirm',
    httpMethod: 'post',
    summary: 'Cross device confirm',
    description:
      'Use this endpoint after receiving a next step from the Approve Cross Device endpoint.\nThis endpoint can be polled until the request has been approved from the authenticated device.\nIf the request has not been approved yet, the current cross device challenge will be returned.',
    stainlessPath: '(resource) auth.challenges.cross-device > (method) confirm',
    qualified: 'client.auth.challenges.crossDevice.confirm',
    params: ['crossDeviceSecret: string;'],
    response:
      "{ nextStep: { challenge: string; info?: { status: 'PENDING_CODE' | 'PENDING_SIGNING'; verificationCode?: string; } | { verificationCode: string; } | { dataToSign: string; } | { availableSigningMethods: 'BIOMETRICS' | 'PASSCODE'[]; } | { code?: string; }; }; sessionId?: string; }",
    markdown:
      "## confirm\n\n`client.auth.challenges.crossDevice.confirm(crossDeviceSecret: string): { nextStep: object; sessionId?: string; }`\n\n**post** `/api/v1/auth/challenges/cross-device:confirm`\n\nUse this endpoint after receiving a next step from the Approve Cross Device endpoint.\nThis endpoint can be polled until the request has been approved from the authenticated device.\nIf the request has not been approved yet, the current cross device challenge will be returned.\n\n### Parameters\n\n- `crossDeviceSecret: string`\n  A base 64 encoded string that is used to pass cross device session information between devices.\n\n### Returns\n\n- `{ nextStep: { challenge: string; info?: { status: 'PENDING_CODE' | 'PENDING_SIGNING'; verificationCode?: string; } | { verificationCode: string; } | { dataToSign: string; } | { availableSigningMethods: 'BIOMETRICS' | 'PASSCODE'[]; } | { code?: string; }; }; sessionId?: string; }`\n\n  - `nextStep: { challenge: string; info?: { status: 'PENDING_CODE' | 'PENDING_SIGNING'; verificationCode?: string; } | { verificationCode: string; } | { dataToSign: string; } | { availableSigningMethods: 'BIOMETRICS' | 'PASSCODE'[]; } | { code?: string; }; }`\n  - `sessionId?: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.auth.challenges.crossDevice.confirm({ crossDeviceSecret: 'crossDeviceSecret' });\n\nconsole.log(response);\n```",
    perLanguage: {
      typescript: {
        method: 'client.auth.challenges.crossDevice.confirm',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.auth.challenges.crossDevice.confirm({\n  crossDeviceSecret: 'crossDeviceSecret',\n});\n\nconsole.log(response.nextStep);",
      },
      python: {
        method: 'auth.challenges.cross_device.confirm',
        example:
          'from plumery import Plumery\n\nclient = Plumery()\nresponse = client.auth.challenges.cross_device.confirm(\n    cross_device_secret="crossDeviceSecret",\n)\nprint(response.next_step)',
      },
      java: {
        method: 'auth().challenges().crossDevice().confirm',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.auth.challenges.crossdevice.CrossDeviceConfirmParams;\nimport com.plumery.api.models.auth.challenges.crossdevice.CrossDeviceConfirmResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        CrossDeviceConfirmParams params = CrossDeviceConfirmParams.builder()\n            .crossDeviceSecret("crossDeviceSecret")\n            .build();\n        CrossDeviceConfirmResponse response = client.auth().challenges().crossDevice().confirm(params);\n    }\n}',
      },
      kotlin: {
        method: 'auth().challenges().crossDevice().confirm',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.auth.challenges.crossdevice.CrossDeviceConfirmParams\nimport com.plumery.api.models.auth.challenges.crossdevice.CrossDeviceConfirmResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: CrossDeviceConfirmParams = CrossDeviceConfirmParams.builder()\n        .crossDeviceSecret("crossDeviceSecret")\n        .build()\n    val response: CrossDeviceConfirmResponse = client.auth().challenges().crossDevice().confirm(params)\n}',
      },
      go: {
        method: 'client.Auth.Challenges.CrossDevice.Confirm',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tresponse, err := client.Auth.Challenges.CrossDevice.Confirm(context.TODO(), plumery.AuthChallengeCrossDeviceConfirmParams{\n\t\tCrossDeviceSecret: plumery.F("crossDeviceSecret"),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.NextStep)\n}\n',
      },
      cli: {
        method: 'cross-device confirm',
        example:
          "plumery auth:challenges:cross-device confirm \\\n  --session 'My Session' \\\n  --cross-device-secret crossDeviceSecret",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/auth/challenges/cross-device:confirm \\\n    -H \'Content-Type: application/json\' \\\n    -d \'{\n          "crossDeviceSecret": "crossDeviceSecret"\n        }\'',
      },
    },
  },
  {
    name: 'approve',
    endpoint: '/api/v1/auth/challenges/cross-device:approve',
    httpMethod: 'post',
    summary: 'Cross device approve',
    description: 'Approves a cross device login session.',
    stainlessPath: '(resource) auth.challenges.cross-device > (method) approve',
    qualified: 'client.auth.challenges.crossDevice.approve',
    params: [
      'approvalNonce: string;',
      'approve: boolean;',
      'targetSessionId: string;',
      'visualVerificationCode: string;',
    ],
    response:
      "{ nextStep: { challenge: string; info?: { status: 'PENDING_CODE' | 'PENDING_SIGNING'; verificationCode?: string; } | { verificationCode: string; } | { dataToSign: string; } | { availableSigningMethods: 'BIOMETRICS' | 'PASSCODE'[]; } | { code?: string; }; }; sessionId?: string; }",
    markdown:
      "## approve\n\n`client.auth.challenges.crossDevice.approve(approvalNonce: string, approve: boolean, targetSessionId: string, visualVerificationCode: string): { nextStep: object; sessionId?: string; }`\n\n**post** `/api/v1/auth/challenges/cross-device:approve`\n\nApproves a cross device login session.\n\n### Parameters\n\n- `approvalNonce: string`\n  The single-use nonce returned with the approval challenge.\n\n- `approve: boolean`\n  Indicates whether the user approves the login.\n\n- `targetSessionId: string`\n  The ID of the target session for the approval.\n\n- `visualVerificationCode: string`\n  A 6 digit code displayed to visually confirm cross-device login.\n\n### Returns\n\n- `{ nextStep: { challenge: string; info?: { status: 'PENDING_CODE' | 'PENDING_SIGNING'; verificationCode?: string; } | { verificationCode: string; } | { dataToSign: string; } | { availableSigningMethods: 'BIOMETRICS' | 'PASSCODE'[]; } | { code?: string; }; }; sessionId?: string; }`\n\n  - `nextStep: { challenge: string; info?: { status: 'PENDING_CODE' | 'PENDING_SIGNING'; verificationCode?: string; } | { verificationCode: string; } | { dataToSign: string; } | { availableSigningMethods: 'BIOMETRICS' | 'PASSCODE'[]; } | { code?: string; }; }`\n  - `sessionId?: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.auth.challenges.crossDevice.approve({\n  approvalNonce: 'approvalNonce',\n  approve: true,\n  targetSessionId: '3191daaeed978b5b4bd29c161899df72',\n  visualVerificationCode: '123456',\n});\n\nconsole.log(response);\n```",
    perLanguage: {
      typescript: {
        method: 'client.auth.challenges.crossDevice.approve',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.auth.challenges.crossDevice.approve({\n  approvalNonce: 'approvalNonce',\n  approve: true,\n  targetSessionId: '3191daaeed978b5b4bd29c161899df72',\n  visualVerificationCode: '123456',\n});\n\nconsole.log(response.nextStep);",
      },
      python: {
        method: 'auth.challenges.cross_device.approve',
        example:
          'from plumery import Plumery\n\nclient = Plumery()\nresponse = client.auth.challenges.cross_device.approve(\n    approval_nonce="approvalNonce",\n    approve=True,\n    target_session_id="3191daaeed978b5b4bd29c161899df72",\n    visual_verification_code="123456",\n)\nprint(response.next_step)',
      },
      java: {
        method: 'auth().challenges().crossDevice().approve',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.auth.challenges.crossdevice.CrossDeviceApproveParams;\nimport com.plumery.api.models.auth.challenges.crossdevice.CrossDeviceApproveResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        CrossDeviceApproveParams params = CrossDeviceApproveParams.builder()\n            .approvalNonce("approvalNonce")\n            .approve(true)\n            .targetSessionId("3191daaeed978b5b4bd29c161899df72")\n            .visualVerificationCode("123456")\n            .build();\n        CrossDeviceApproveResponse response = client.auth().challenges().crossDevice().approve(params);\n    }\n}',
      },
      kotlin: {
        method: 'auth().challenges().crossDevice().approve',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.auth.challenges.crossdevice.CrossDeviceApproveParams\nimport com.plumery.api.models.auth.challenges.crossdevice.CrossDeviceApproveResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: CrossDeviceApproveParams = CrossDeviceApproveParams.builder()\n        .approvalNonce("approvalNonce")\n        .approve(true)\n        .targetSessionId("3191daaeed978b5b4bd29c161899df72")\n        .visualVerificationCode("123456")\n        .build()\n    val response: CrossDeviceApproveResponse = client.auth().challenges().crossDevice().approve(params)\n}',
      },
      go: {
        method: 'client.Auth.Challenges.CrossDevice.Approve',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tresponse, err := client.Auth.Challenges.CrossDevice.Approve(context.TODO(), plumery.AuthChallengeCrossDeviceApproveParams{\n\t\tApprovalNonce:          plumery.F("approvalNonce"),\n\t\tApprove:                plumery.F(true),\n\t\tTargetSessionID:        plumery.F("3191daaeed978b5b4bd29c161899df72"),\n\t\tVisualVerificationCode: plumery.F("123456"),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.NextStep)\n}\n',
      },
      cli: {
        method: 'cross-device approve',
        example:
          "plumery auth:challenges:cross-device approve \\\n  --session 'My Session' \\\n  --approval-nonce approvalNonce \\\n  --approve \\\n  --target-session-id 3191daaeed978b5b4bd29c161899df72 \\\n  --visual-verification-code 123456",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/auth/challenges/cross-device:approve \\\n    -H \'Content-Type: application/json\' \\\n    -d \'{\n          "approvalNonce": "approvalNonce",\n          "approve": true,\n          "targetSessionId": "3191daaeed978b5b4bd29c161899df72",\n          "visualVerificationCode": "123456"\n        }\'',
      },
    },
  },
  {
    name: 'list',
    endpoint: '/api/v1/auth/challenges/cross-device-pending-authentications',
    httpMethod: 'get',
    summary: 'Cross device pending authentications',
    description:
      'Lists the cross device login requests waiting for the authenticated user to decide on.\n\nUsed as the fallback channel when a push notification does not reach the secondary device,\neither because notifications are turned off or because the device is not a mobile one.\nRequests that have been picked up on another device, rejected or expired are not returned.',
    stainlessPath: '(resource) auth.challenges.cross-device-pending-authentications > (method) list',
    qualified: 'client.auth.challenges.crossDevicePendingAuthentications.list',
    response:
      '{ pendingAuthentications: { activityType: string; crossDeviceSecret: string; deviceIp: string; deviceName: string; expiresAt: string; loginDateTime: string; visualVerificationCode: string; }[]; }',
    markdown:
      "## list\n\n`client.auth.challenges.crossDevicePendingAuthentications.list(): { pendingAuthentications: object[]; }`\n\n**get** `/api/v1/auth/challenges/cross-device-pending-authentications`\n\nLists the cross device login requests waiting for the authenticated user to decide on.\n\nUsed as the fallback channel when a push notification does not reach the secondary device,\neither because notifications are turned off or because the device is not a mobile one.\nRequests that have been picked up on another device, rejected or expired are not returned.\n\n### Returns\n\n- `{ pendingAuthentications: { activityType: string; crossDeviceSecret: string; deviceIp: string; deviceName: string; expiresAt: string; loginDateTime: string; visualVerificationCode: string; }[]; }`\n\n  - `pendingAuthentications: { activityType: string; crossDeviceSecret: string; deviceIp: string; deviceName: string; expiresAt: string; loginDateTime: string; visualVerificationCode: string; }[]`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst crossDevicePendingAuthentications = await client.auth.challenges.crossDevicePendingAuthentications.list();\n\nconsole.log(crossDevicePendingAuthentications);\n```",
    perLanguage: {
      typescript: {
        method: 'client.auth.challenges.crossDevicePendingAuthentications.list',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nconst crossDevicePendingAuthentications =\n  await client.auth.challenges.crossDevicePendingAuthentications.list();\n\nconsole.log(crossDevicePendingAuthentications.pendingAuthentications);",
      },
      python: {
        method: 'auth.challenges.cross_device_pending_authentications.list',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\ncross_device_pending_authentications = client.auth.challenges.cross_device_pending_authentications.list()\nprint(cross_device_pending_authentications.pending_authentications)',
      },
      java: {
        method: 'auth().challenges().crossDevicePendingAuthentications().list',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.auth.challenges.crossdevicependingauthentications.CrossDevicePendingAuthenticationListParams;\nimport com.plumery.api.models.auth.challenges.crossdevicependingauthentications.CrossDevicePendingAuthenticationListResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        CrossDevicePendingAuthenticationListResponse crossDevicePendingAuthentications = client.auth().challenges().crossDevicePendingAuthentications().list();\n    }\n}',
      },
      kotlin: {
        method: 'auth().challenges().crossDevicePendingAuthentications().list',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.auth.challenges.crossdevicependingauthentications.CrossDevicePendingAuthenticationListParams\nimport com.plumery.api.models.auth.challenges.crossdevicependingauthentications.CrossDevicePendingAuthenticationListResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val crossDevicePendingAuthentications: CrossDevicePendingAuthenticationListResponse = client.auth().challenges().crossDevicePendingAuthentications().list()\n}',
      },
      go: {
        method: 'client.Auth.Challenges.CrossDevicePendingAuthentications.List',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tcrossDevicePendingAuthentications, err := client.Auth.Challenges.CrossDevicePendingAuthentications.List(context.TODO())\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", crossDevicePendingAuthentications.PendingAuthentications)\n}\n',
      },
      cli: {
        method: 'cross-device-pending-authentications list',
        example:
          "plumery auth:challenges:cross-device-pending-authentications list \\\n  --session 'My Session'",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/auth/challenges/cross-device-pending-authentications \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'list',
    endpoint: '/api/v1/auth/pending',
    httpMethod: 'get',
    summary: 'List Pending Authentications',
    description: 'Retrieve all pending authentications for a given username.\n',
    stainlessPath: '(resource) auth.pending > (method) list',
    qualified: 'client.auth.pending.list',
    params: ['username: string;', 'publicKey?: string;'],
    response:
      '{ pendingAuthentications?: { id: string; createdAt: string; username: string; bindingMessage?: string; }[]; }',
    markdown:
      "## list\n\n`client.auth.pending.list(username: string, publicKey?: string): { pendingAuthentications?: object[]; }`\n\n**get** `/api/v1/auth/pending`\n\nRetrieve all pending authentications for a given username.\n\n\n### Parameters\n\n- `username: string`\n  Username whose pending authentications should be listed.\n\n- `publicKey?: string`\n  The public key associated with the device performing the request. \nA Base64-encoded RSA public key (up to 4096 bytes) generated using SHA-256 hashing. \nthe public key must be URL encoded.\n\n\n### Returns\n\n- `{ pendingAuthentications?: { id: string; createdAt: string; username: string; bindingMessage?: string; }[]; }`\n  List of pending authentications for a given user.\n\n  - `pendingAuthentications?: { id: string; createdAt: string; username: string; bindingMessage?: string; }[]`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst pendings = await client.auth.pending.list({ username: 'username' });\n\nconsole.log(pendings);\n```",
    perLanguage: {
      typescript: {
        method: 'client.auth.pending.list',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nconst pendings = await client.auth.pending.list({ username: 'username' });\n\nconsole.log(pendings.pendingAuthentications);",
      },
      python: {
        method: 'auth.pending.list',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\npendings = client.auth.pending.list(\n    username="username",\n)\nprint(pendings.pending_authentications)',
      },
      java: {
        method: 'auth().pending().list',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.auth.pending.PendingListParams;\nimport com.plumery.api.models.auth.pending.PendingListResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        PendingListParams params = PendingListParams.builder()\n            .username("username")\n            .build();\n        PendingListResponse pendings = client.auth().pending().list(params);\n    }\n}',
      },
      kotlin: {
        method: 'auth().pending().list',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.auth.pending.PendingListParams\nimport com.plumery.api.models.auth.pending.PendingListResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: PendingListParams = PendingListParams.builder()\n        .username("username")\n        .build()\n    val pendings: PendingListResponse = client.auth().pending().list(params)\n}',
      },
      go: {
        method: 'client.Auth.Pending.List',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tpendings, err := client.Auth.Pending.List(context.TODO(), plumery.AuthPendingListParams{\n\t\tUsername: plumery.F("username"),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", pendings.PendingAuthentications)\n}\n',
      },
      cli: {
        method: 'pending list',
        example: "plumery auth:pending list \\\n  --session 'My Session' \\\n  --username username",
      },
      http: {
        example: 'curl https://api.plumery.com/api/v1/auth/pending \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'create',
    endpoint: '/api/v1/auth/pending/{authRequestId}',
    httpMethod: 'post',
    summary: 'Initiate Pending Authentication',
    description: 'Initiate a pending authentication flow for an existing pending authentication request.\n',
    stainlessPath: '(resource) auth.pending > (method) create',
    qualified: 'client.auth.pending.create',
    params: [
      'authRequestId: string;',
      "body: { deviceId: string; flowName: 'PENDING_LOGIN_SMART_ID'; personalId: string; username: string; } | { deviceId: string; flowName: 'PENDING_LOGIN_MOBILE_ID'; phoneNumber: string; username: string; } | { deviceId: string; flowName: 'PENDING_LOGIN_BIOMETRICS_AND_PASSCODE'; username: string; };",
    ],
    response:
      "{ nextStep: { challenge: string; info?: { status: 'PENDING_CODE' | 'PENDING_SIGNING'; verificationCode?: string; } | { verificationCode: string; } | { dataToSign: string; } | { availableSigningMethods: 'BIOMETRICS' | 'PASSCODE'[]; } | { code?: string; }; }; sessionId?: string; }",
    perLanguage: {
      typescript: {
        method: 'client.auth.pending.create',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nconst pending = await client.auth.pending.create('authRequestId', {\n  deviceId: '8c4baf1b-0dfd-4ad9-bf2c-4b0b2819e0e7',\n  flowName: 'PENDING_LOGIN_SMART_ID',\n  personalId: 'personalId',\n  username: 'john.doe',\n});\n\nconsole.log(pending.nextStep);",
      },
      python: {
        method: 'auth.pending.create',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\npending = client.auth.pending.create(\n    auth_request_id="authRequestId",\n    device_id="8c4baf1b-0dfd-4ad9-bf2c-4b0b2819e0e7",\n    flow_name="PENDING_LOGIN_SMART_ID",\n    personal_id="personalId",\n    username="john.doe",\n)\nprint(pending.next_step)',
      },
      java: {
        method: 'auth().pending().create',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.auth.pending.PendingCreateParams;\nimport com.plumery.api.models.auth.pending.PendingCreateResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        PendingCreateParams params = PendingCreateParams.builder()\n            .authRequestId("authRequestId")\n            .body(PendingCreateParams.Body.PendingLoginSmartId.builder()\n                .deviceId("8c4baf1b-0dfd-4ad9-bf2c-4b0b2819e0e7")\n                .personalId("personalId")\n                .username("john.doe")\n                .build())\n            .build();\n        PendingCreateResponse pending = client.auth().pending().create(params);\n    }\n}',
      },
      kotlin: {
        method: 'auth().pending().create',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.auth.pending.PendingCreateParams\nimport com.plumery.api.models.auth.pending.PendingCreateResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: PendingCreateParams = PendingCreateParams.builder()\n        .authRequestId("authRequestId")\n        .body(PendingCreateParams.Body.PendingLoginSmartId.builder()\n            .deviceId("8c4baf1b-0dfd-4ad9-bf2c-4b0b2819e0e7")\n            .personalId("personalId")\n            .username("john.doe")\n            .build())\n        .build()\n    val pending: PendingCreateResponse = client.auth().pending().create(params)\n}',
      },
      go: {
        method: 'client.Auth.Pending.New',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tpending, err := client.Auth.Pending.New(\n\t\tcontext.TODO(),\n\t\t"authRequestId",\n\t\tplumery.AuthPendingNewParams{\n\t\t\tBody: plumery.AuthPendingNewParamsBodyAuthOrchestratorSmartIDPendingAuthenticationRequest{\n\t\t\t\tDeviceID:   plumery.F("8c4baf1b-0dfd-4ad9-bf2c-4b0b2819e0e7"),\n\t\t\t\tFlowName:   plumery.F(plumery.AuthPendingNewParamsBodyAuthOrchestratorSmartIDPendingAuthenticationRequestFlowNamePendingLoginSmartID),\n\t\t\t\tPersonalID: plumery.F("personalId"),\n\t\t\t\tUsername:   plumery.F("john.doe"),\n\t\t\t},\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", pending.NextStep)\n}\n',
      },
      cli: {
        method: 'pending create',
        example:
          "plumery auth:pending create \\\n  --session 'My Session' \\\n  --auth-request-id authRequestId \\\n  --device-id 8c4baf1b-0dfd-4ad9-bf2c-4b0b2819e0e7 \\\n  --flow-name PENDING_LOGIN_SMART_ID \\\n  --personal-id personalId \\\n  --username john.doe \\\n  --phone-number +46991022",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/auth/pending/$AUTH_REQUEST_ID \\\n    -H \'Content-Type: application/json\' \\\n    -H "Cookie: $SESSION" \\\n    -d \'{\n          "deviceId": "8c4baf1b-0dfd-4ad9-bf2c-4b0b2819e0e7",\n          "flowName": "PENDING_LOGIN_SMART_ID",\n          "personalId": "personalId",\n          "username": "john.doe"\n        }\'',
      },
    },
  },
  {
    name: 'reset',
    endpoint: '/api/v1/auth/password:reset',
    httpMethod: 'post',
    summary: 'Reset Password',
    description:
      'This endpoint is used to initiate the process of password reset, in case the user has forgotten their password.\n\nWhen the request contains the phone number, the OTP code will be sent by SMS and when the request contains the e-mail address, the OTP will be sent by e-mail.\n\nThis will initiate an OTP sent to the user, next step is to validate it.',
    stainlessPath: '(resource) auth.password > (method) reset',
    qualified: 'client.auth.password.reset',
    params: ['emailAddress?: string;', 'phoneNumber?: string;', 'plmr-user-action?: boolean;'],
    response:
      "{ nextStep: { challenge: string; info?: { status: 'PENDING_CODE' | 'PENDING_SIGNING'; verificationCode?: string; } | { verificationCode: string; } | { dataToSign: string; } | { availableSigningMethods: 'BIOMETRICS' | 'PASSCODE'[]; } | { code?: string; }; }; sessionId?: string; }",
    markdown:
      "## reset\n\n`client.auth.password.reset(emailAddress?: string, phoneNumber?: string, plmr-user-action?: boolean): { nextStep: object; sessionId?: string; }`\n\n**post** `/api/v1/auth/password:reset`\n\nThis endpoint is used to initiate the process of password reset, in case the user has forgotten their password.\n\nWhen the request contains the phone number, the OTP code will be sent by SMS and when the request contains the e-mail address, the OTP will be sent by e-mail.\n\nThis will initiate an OTP sent to the user, next step is to validate it.\n\n### Parameters\n\n- `emailAddress?: string`\n  Email address of the user\n\n- `phoneNumber?: string`\n  Phone number of the user\n\n- `plmr-user-action?: boolean`\n\n### Returns\n\n- `{ nextStep: { challenge: string; info?: { status: 'PENDING_CODE' | 'PENDING_SIGNING'; verificationCode?: string; } | { verificationCode: string; } | { dataToSign: string; } | { availableSigningMethods: 'BIOMETRICS' | 'PASSCODE'[]; } | { code?: string; }; }; sessionId?: string; }`\n\n  - `nextStep: { challenge: string; info?: { status: 'PENDING_CODE' | 'PENDING_SIGNING'; verificationCode?: string; } | { verificationCode: string; } | { dataToSign: string; } | { availableSigningMethods: 'BIOMETRICS' | 'PASSCODE'[]; } | { code?: string; }; }`\n  - `sessionId?: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.auth.password.reset();\n\nconsole.log(response);\n```",
    perLanguage: {
      typescript: {
        method: 'client.auth.password.reset',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.auth.password.reset();\n\nconsole.log(response.nextStep);",
      },
      python: {
        method: 'auth.password.reset',
        example:
          'from plumery import Plumery\n\nclient = Plumery()\nresponse = client.auth.password.reset()\nprint(response.next_step)',
      },
      java: {
        method: 'auth().password().reset',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.auth.password.PasswordResetParams;\nimport com.plumery.api.models.auth.password.PasswordResetResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        PasswordResetResponse response = client.auth().password().reset();\n    }\n}',
      },
      kotlin: {
        method: 'auth().password().reset',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.auth.password.PasswordResetParams\nimport com.plumery.api.models.auth.password.PasswordResetResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val response: PasswordResetResponse = client.auth().password().reset()\n}',
      },
      go: {
        method: 'client.Auth.Password.Reset',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tresponse, err := client.Auth.Password.Reset(context.TODO(), plumery.AuthPasswordResetParams{})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.NextStep)\n}\n',
      },
      cli: {
        method: 'password reset',
        example: "plumery auth:password reset \\\n  --session 'My Session'",
      },
      http: {
        example: 'curl https://api.plumery.com/api/v1/auth/password:reset \\\n    -X POST',
      },
    },
  },
  {
    name: 'confirm',
    endpoint: '/api/v1/auth/password/challenges:confirm',
    httpMethod: 'post',
    summary: 'Confirm Password',
    description:
      'Use this endpoint after receiving `PasswordConfirm` as next step.\n\nThis is the final step to of the password reset process.',
    stainlessPath: '(resource) auth.password.challenges > (method) confirm',
    qualified: 'client.auth.password.challenges.confirm',
    params: ['password: string;', 'sessionId: string;', 'plmr-user-action?: boolean;'],
    markdown:
      "## confirm\n\n`client.auth.password.challenges.confirm(password: string, sessionId: string, plmr-user-action?: boolean): void`\n\n**post** `/api/v1/auth/password/challenges:confirm`\n\nUse this endpoint after receiving `PasswordConfirm` as next step.\n\nThis is the final step to of the password reset process.\n\n### Parameters\n\n- `password: string`\n\n- `sessionId: string`\n\n- `plmr-user-action?: boolean`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nawait client.auth.password.challenges.confirm({ password: 'P', sessionId: 'P' })\n```",
    perLanguage: {
      typescript: {
        method: 'client.auth.password.challenges.confirm',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery();\n\nawait client.auth.password.challenges.confirm({ password: 'P', sessionId: 'P' });",
      },
      python: {
        method: 'auth.password.challenges.confirm',
        example:
          'from plumery import Plumery\n\nclient = Plumery()\nclient.auth.password.challenges.confirm(\n    password="P",\n    session_id="P",\n)',
      },
      java: {
        method: 'auth().password().challenges().confirm',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.auth.password.challenges.ChallengeConfirmParams;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        ChallengeConfirmParams params = ChallengeConfirmParams.builder()\n            .password("P")\n            .sessionId("P")\n            .build();\n        client.auth().password().challenges().confirm(params);\n    }\n}',
      },
      kotlin: {
        method: 'auth().password().challenges().confirm',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.auth.password.challenges.ChallengeConfirmParams\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: ChallengeConfirmParams = ChallengeConfirmParams.builder()\n        .password("P")\n        .sessionId("P")\n        .build()\n    client.auth().password().challenges().confirm(params)\n}',
      },
      go: {
        method: 'client.Auth.Password.Challenges.Confirm',
        example:
          'package main\n\nimport (\n\t"context"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\terr := client.Auth.Password.Challenges.Confirm(context.TODO(), plumery.AuthPasswordChallengeConfirmParams{\n\t\tPassword:  plumery.F("P"),\n\t\tSessionID: plumery.F("P"),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
      },
      cli: {
        method: 'challenges confirm',
        example:
          "plumery auth:password:challenges confirm \\\n  --session 'My Session' \\\n  --password P \\\n  --session-id P",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/auth/password/challenges:confirm \\\n    -H \'Content-Type: application/json\' \\\n    -d \'{\n          "password": "P",\n          "sessionId": "P"\n        }\'',
      },
    },
  },
  {
    name: 'verify',
    endpoint: '/api/v1/auth/password/challenges/otp:verify',
    httpMethod: 'post',
    summary: 'Verify OTP',
    description:
      'Use this endpoint after receiving `OTP` as next step from the "Reset Password" endpoint. \n\nIf OTP verified successfully, next step is `PasswordConfirm`.',
    stainlessPath: '(resource) auth.password.challenges.otp > (method) verify',
    qualified: 'client.auth.password.challenges.otp.verify',
    params: ['code: string;', 'sessionId: string;', 'plmr-user-action?: boolean;'],
    response:
      "{ nextStep: { challenge: string; info?: { status: 'PENDING_CODE' | 'PENDING_SIGNING'; verificationCode?: string; } | { verificationCode: string; } | { dataToSign: string; } | { availableSigningMethods: 'BIOMETRICS' | 'PASSCODE'[]; } | { code?: string; }; }; sessionId?: string; }",
    markdown:
      "## verify\n\n`client.auth.password.challenges.otp.verify(code: string, sessionId: string, plmr-user-action?: boolean): { nextStep: object; sessionId?: string; }`\n\n**post** `/api/v1/auth/password/challenges/otp:verify`\n\nUse this endpoint after receiving `OTP` as next step from the \"Reset Password\" endpoint. \n\nIf OTP verified successfully, next step is `PasswordConfirm`.\n\n### Parameters\n\n- `code: string`\n  The OTP code provided to the user\n\n- `sessionId: string`\n  the ID of the session\n\n- `plmr-user-action?: boolean`\n\n### Returns\n\n- `{ nextStep: { challenge: string; info?: { status: 'PENDING_CODE' | 'PENDING_SIGNING'; verificationCode?: string; } | { verificationCode: string; } | { dataToSign: string; } | { availableSigningMethods: 'BIOMETRICS' | 'PASSCODE'[]; } | { code?: string; }; }; sessionId?: string; }`\n\n  - `nextStep: { challenge: string; info?: { status: 'PENDING_CODE' | 'PENDING_SIGNING'; verificationCode?: string; } | { verificationCode: string; } | { dataToSign: string; } | { availableSigningMethods: 'BIOMETRICS' | 'PASSCODE'[]; } | { code?: string; }; }`\n  - `sessionId?: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.auth.password.challenges.otp.verify({ code: '123456', sessionId: '3191daaeed978b5b4bd29c161899df72' });\n\nconsole.log(response);\n```",
    perLanguage: {
      typescript: {
        method: 'client.auth.password.challenges.otp.verify',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.auth.password.challenges.otp.verify({\n  code: '123456',\n  sessionId: '3191daaeed978b5b4bd29c161899df72',\n});\n\nconsole.log(response.nextStep);",
      },
      python: {
        method: 'auth.password.challenges.otp.verify',
        example:
          'from plumery import Plumery\n\nclient = Plumery()\nresponse = client.auth.password.challenges.otp.verify(\n    code="123456",\n    session_id="3191daaeed978b5b4bd29c161899df72",\n)\nprint(response.next_step)',
      },
      java: {
        method: 'auth().password().challenges().otp().verify',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.auth.password.challenges.otp.OtpVerifyParams;\nimport com.plumery.api.models.auth.password.challenges.otp.OtpVerifyResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        OtpVerifyParams params = OtpVerifyParams.builder()\n            .code("123456")\n            .sessionId("3191daaeed978b5b4bd29c161899df72")\n            .build();\n        OtpVerifyResponse response = client.auth().password().challenges().otp().verify(params);\n    }\n}',
      },
      kotlin: {
        method: 'auth().password().challenges().otp().verify',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.auth.password.challenges.otp.OtpVerifyParams\nimport com.plumery.api.models.auth.password.challenges.otp.OtpVerifyResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: OtpVerifyParams = OtpVerifyParams.builder()\n        .code("123456")\n        .sessionId("3191daaeed978b5b4bd29c161899df72")\n        .build()\n    val response: OtpVerifyResponse = client.auth().password().challenges().otp().verify(params)\n}',
      },
      go: {
        method: 'client.Auth.Password.Challenges.Otp.Verify',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tresponse, err := client.Auth.Password.Challenges.Otp.Verify(context.TODO(), plumery.AuthPasswordChallengeOtpVerifyParams{\n\t\tCode:      plumery.F("123456"),\n\t\tSessionID: plumery.F("3191daaeed978b5b4bd29c161899df72"),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.NextStep)\n}\n',
      },
      cli: {
        method: 'otp verify',
        example:
          "plumery auth:password:challenges:otp verify \\\n  --session 'My Session' \\\n  --code 123456 \\\n  --session-id 3191daaeed978b5b4bd29c161899df72",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/auth/password/challenges/otp:verify \\\n    -H \'Content-Type: application/json\' \\\n    -d \'{\n          "code": "123456",\n          "sessionId": "3191daaeed978b5b4bd29c161899df72"\n        }\'',
      },
    },
  },
  {
    name: 'prepare',
    endpoint: '/api/v1/documents-signing:prepare',
    httpMethod: 'post',
    summary: 'Prepare Documents Signing',
    description:
      'Prepares documents for signing and returns challenge id. Endpoint stores documents context with passed documents list.\n**Next step:** Initiate signing process - see *Documents Signing* section for available signing methods.\n',
    stainlessPath: '(resource) documentsSigning > (method) prepare',
    qualified: 'client.documentsSigning.prepare',
    params: ['documentsToSign: { uri: string; displayDocumentName?: string; }[];', 'X-Request-ID?: string;'],
    response: '{ challengeId?: string; }',
    markdown:
      "## prepare\n\n`client.documentsSigning.prepare(documentsToSign: { uri: string; displayDocumentName?: string; }[], X-Request-ID?: string): { challengeId?: string; }`\n\n**post** `/api/v1/documents-signing:prepare`\n\nPrepares documents for signing and returns challenge id. Endpoint stores documents context with passed documents list.\n**Next step:** Initiate signing process - see *Documents Signing* section for available signing methods.\n\n\n### Parameters\n\n- `documentsToSign: { uri: string; displayDocumentName?: string; }[]`\n  List of documents to be signed.\n\n- `X-Request-ID?: string`\n\n### Returns\n\n- `{ challengeId?: string; }`\n\n  - `challengeId?: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.documentsSigning.prepare({ documentsToSign: [{ uri: 'https://api.plumery.com/api/v1/files/en/privacy-policy/v1/Privacy_Policy.pdf' }] });\n\nconsole.log(response);\n```",
    perLanguage: {
      typescript: {
        method: 'client.documentsSigning.prepare',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.documentsSigning.prepare({\n  documentsToSign: [\n    { uri: 'https://api.plumery.com/api/v1/files/en/privacy-policy/v1/Privacy_Policy.pdf' },\n  ],\n});\n\nconsole.log(response.challengeId);",
      },
      python: {
        method: 'documents_signing.prepare',
        example:
          'from plumery import Plumery\n\nclient = Plumery()\nresponse = client.documents_signing.prepare(\n    documents_to_sign=[{\n        "uri": "https://api.plumery.com/api/v1/files/en/privacy-policy/v1/Privacy_Policy.pdf"\n    }],\n)\nprint(response.challenge_id)',
      },
      java: {
        method: 'documentsSigning().prepare',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.documentssigning.DocumentsSigningPrepareParams;\nimport com.plumery.api.models.documentssigning.DocumentsSigningPrepareResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        DocumentsSigningPrepareParams params = DocumentsSigningPrepareParams.builder()\n            .addDocumentsToSign(DocumentsSigningPrepareParams.DocumentsToSign.builder()\n                .uri("https://api.plumery.com/api/v1/files/en/privacy-policy/v1/Privacy_Policy.pdf")\n                .build())\n            .build();\n        DocumentsSigningPrepareResponse response = client.documentsSigning().prepare(params);\n    }\n}',
      },
      kotlin: {
        method: 'documentsSigning().prepare',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.documentssigning.DocumentsSigningPrepareParams\nimport com.plumery.api.models.documentssigning.DocumentsSigningPrepareResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: DocumentsSigningPrepareParams = DocumentsSigningPrepareParams.builder()\n        .addDocumentsToSign(DocumentsSigningPrepareParams.DocumentsToSign.builder()\n            .uri("https://api.plumery.com/api/v1/files/en/privacy-policy/v1/Privacy_Policy.pdf")\n            .build())\n        .build()\n    val response: DocumentsSigningPrepareResponse = client.documentsSigning().prepare(params)\n}',
      },
      go: {
        method: 'client.DocumentsSigning.Prepare',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tresponse, err := client.DocumentsSigning.Prepare(context.TODO(), plumery.DocumentsSigningPrepareParams{\n\t\tDocumentsToSign: plumery.F([]plumery.DocumentsSigningPrepareParamsDocumentsToSign{{\n\t\t\tUri: plumery.F("https://api.plumery.com/api/v1/files/en/privacy-policy/v1/Privacy_Policy.pdf"),\n\t\t}}),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.ChallengeID)\n}\n',
      },
      cli: {
        method: 'documentsSigning prepare',
        example:
          "plumery documents-signing prepare \\\n  --session 'My Session' \\\n  --documents-to-sign '{uri: https://api.plumery.com/api/v1/files/en/privacy-policy/v1/Privacy_Policy.pdf}'",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/documents-signing:prepare \\\n    -H \'Content-Type: application/json\' \\\n    -d \'{\n          "documentsToSign": [\n            {\n              "uri": "https://api.plumery.com/api/v1/files/en/privacy-policy/v1/Privacy_Policy.pdf"\n            }\n          ]\n        }\'',
      },
    },
  },
  {
    name: 'initiate',
    endpoint: '/api/v1/documents-signing/unauthenticated/sk-id/smart-id/signature/{challengeId}:initiate',
    httpMethod: 'post',
    summary: 'Initiate Smart-ID documents signing challenge',
    description:
      'Initiates SK-ID Smart-ID documents signing challenge.\n\nThis endpoint initiates the document signing process and returns the current signing session status.\n- When the status is `PENDING_CODE`, the signing session is not fully initialized and the verification code is not present in the response.\n- When the status is `PENDING_SIGNATURE`, the signing session is fully initialized and the response includes a verification code that the end user must confirm in the SK-ID Smart-ID application.',
    stainlessPath: '(resource) documentsSigning.unauthenticated.sk-id.smart-id.signature > (method) initiate',
    qualified: 'client.documentsSigning.unauthenticated.skID.smartID.signature.initiate',
    params: [
      'challengeId: string;',
      'countryCode: string;',
      'personalId: string;',
      'preferredLanguage?: string;',
    ],
    response: "{ status?: 'PENDING_CODE' | 'PENDING_SIGNING'; verificationCode?: string; }",
    markdown:
      "## initiate\n\n`client.documentsSigning.unauthenticated.skID.smartID.signature.initiate(challengeId: string, countryCode: string, personalId: string, preferredLanguage?: string): { status?: 'PENDING_CODE' | 'PENDING_SIGNING'; verificationCode?: string; }`\n\n**post** `/api/v1/documents-signing/unauthenticated/sk-id/smart-id/signature/{challengeId}:initiate`\n\nInitiates SK-ID Smart-ID documents signing challenge.\n\nThis endpoint initiates the document signing process and returns the current signing session status.\n- When the status is `PENDING_CODE`, the signing session is not fully initialized and the verification code is not present in the response.\n- When the status is `PENDING_SIGNATURE`, the signing session is fully initialized and the response includes a verification code that the end user must confirm in the SK-ID Smart-ID application.\n\n### Parameters\n\n- `challengeId: string`\n\n- `countryCode: string`\n  Nation with its own government. ISO 3166, Alpha-2 code\n\n\n- `personalId: string`\n  National ID / Personal identification number\n\n- `preferredLanguage?: string`\n  Preferred language of the individual\n\n### Returns\n\n- `{ status?: 'PENDING_CODE' | 'PENDING_SIGNING'; verificationCode?: string; }`\n\n  - `status?: 'PENDING_CODE' | 'PENDING_SIGNING'`\n  - `verificationCode?: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.documentsSigning.unauthenticated.skID.smartID.signature.initiate('2751d7d9-df79-4412-b4c4-28aaa7075548', { countryCode: 'US', personalId: '12345678901' });\n\nconsole.log(response);\n```",
    perLanguage: {
      typescript: {
        method: 'client.documentsSigning.unauthenticated.skID.smartID.signature.initiate',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.documentsSigning.unauthenticated.skID.smartID.signature.initiate(\n  '2751d7d9-df79-4412-b4c4-28aaa7075548',\n  { countryCode: 'US', personalId: '12345678901' },\n);\n\nconsole.log(response.status);",
      },
      python: {
        method: 'documents_signing.unauthenticated.sk_id.smart_id.signature.initiate',
        example:
          'from plumery import Plumery\n\nclient = Plumery()\nresponse = client.documents_signing.unauthenticated.sk_id.smart_id.signature.initiate(\n    challenge_id="2751d7d9-df79-4412-b4c4-28aaa7075548",\n    country_code="US",\n    personal_id="12345678901",\n)\nprint(response.status)',
      },
      java: {
        method: 'documentsSigning().unauthenticated().skId().smartId().signature().initiate',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.documentssigning.unauthenticated.skid.smartid.signature.SignatureInitiateParams;\nimport com.plumery.api.models.documentssigning.unauthenticated.skid.smartid.signature.SignatureInitiateResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        SignatureInitiateParams params = SignatureInitiateParams.builder()\n            .challengeId("2751d7d9-df79-4412-b4c4-28aaa7075548")\n            .countryCode("US")\n            .personalId("12345678901")\n            .build();\n        SignatureInitiateResponse response = client.documentsSigning().unauthenticated().skId().smartId().signature().initiate(params);\n    }\n}',
      },
      kotlin: {
        method: 'documentsSigning().unauthenticated().skId().smartId().signature().initiate',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.documentssigning.unauthenticated.skid.smartid.signature.SignatureInitiateParams\nimport com.plumery.api.models.documentssigning.unauthenticated.skid.smartid.signature.SignatureInitiateResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: SignatureInitiateParams = SignatureInitiateParams.builder()\n        .challengeId("2751d7d9-df79-4412-b4c4-28aaa7075548")\n        .countryCode("US")\n        .personalId("12345678901")\n        .build()\n    val response: SignatureInitiateResponse = client.documentsSigning().unauthenticated().skId().smartId().signature().initiate(params)\n}',
      },
      go: {
        method: 'client.DocumentsSigning.Unauthenticated.SkID.SmartID.Signature.Initiate',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tresponse, err := client.DocumentsSigning.Unauthenticated.SkID.SmartID.Signature.Initiate(\n\t\tcontext.TODO(),\n\t\t"2751d7d9-df79-4412-b4c4-28aaa7075548",\n\t\tplumery.DocumentsSigningUnauthenticatedSkIDSmartIDSignatureInitiateParams{\n\t\t\tCountryCode: plumery.F("US"),\n\t\t\tPersonalID:  plumery.F("12345678901"),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.Status)\n}\n',
      },
      cli: {
        method: 'signature initiate',
        example:
          "plumery documents-signing:unauthenticated:sk-id:smart-id:signature initiate \\\n  --session 'My Session' \\\n  --challenge-id 2751d7d9-df79-4412-b4c4-28aaa7075548 \\\n  --country-code US \\\n  --personal-id 12345678901",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/documents-signing/unauthenticated/sk-id/smart-id/signature/$CHALLENGE_ID:initiate \\\n    -H \'Content-Type: application/json\' \\\n    -d \'{\n          "countryCode": "US",\n          "personalId": "12345678901",\n          "preferredLanguage": "en-US"\n        }\'',
      },
    },
  },
  {
    name: 'confirm',
    endpoint: '/api/v1/documents-signing/unauthenticated/sk-id/smart-id/signature/{challengeId}:confirm',
    httpMethod: 'post',
    summary: 'Confirm SK-ID Smart-ID documents signing challenge',
    description:
      'Confirms SK-ID Smart-ID documents signing challenge.\n\nThis endpoint initiates a signing session by sending a notification to the user’s phone, prompting them to confirm the signing request.\nThe client must then poll this endpoint to track the signing session status until the process is completed or fails.\n\nThe signing session progresses through the following statuses:\n  - `PENDING_CODE`\n    The signing session has been created, but is not fully initialized yet.\n    The verification code is not returned at this stage.\n\n  - `PENDING_SIGNATURE`\n    The signing session is fully initialized.\n    The verification code is returned and the user is expected to confirm the signing on their device.\n\n  - `COMPLETED`\n    The signing has been successfully completed.\n    The signature is verified and saved.\n\nThe client must poll this endpoint repeatedly until one of the following conditions is met:\n  - A 200 OK response is returned with status `COMPLETED`, indicating successful signing\n  - Any other error response is returned, indicating that the signing process has failed and polling must stop',
    stainlessPath: '(resource) documentsSigning.unauthenticated.sk-id.smart-id.signature > (method) confirm',
    qualified: 'client.documentsSigning.unauthenticated.skID.smartID.signature.confirm',
    params: ['challengeId: string;'],
    response: "{ status?: 'PENDING_CODE' | 'PENDING_SIGNING' | 'COMPLETED'; verificationCode?: string; }",
    markdown:
      "## confirm\n\n`client.documentsSigning.unauthenticated.skID.smartID.signature.confirm(challengeId: string): { status?: 'PENDING_CODE' | 'PENDING_SIGNING' | 'COMPLETED'; verificationCode?: string; }`\n\n**post** `/api/v1/documents-signing/unauthenticated/sk-id/smart-id/signature/{challengeId}:confirm`\n\nConfirms SK-ID Smart-ID documents signing challenge.\n\nThis endpoint initiates a signing session by sending a notification to the user’s phone, prompting them to confirm the signing request.\nThe client must then poll this endpoint to track the signing session status until the process is completed or fails.\n\nThe signing session progresses through the following statuses:\n  - `PENDING_CODE`\n    The signing session has been created, but is not fully initialized yet.\n    The verification code is not returned at this stage.\n\n  - `PENDING_SIGNATURE`\n    The signing session is fully initialized.\n    The verification code is returned and the user is expected to confirm the signing on their device.\n\n  - `COMPLETED`\n    The signing has been successfully completed.\n    The signature is verified and saved.\n\nThe client must poll this endpoint repeatedly until one of the following conditions is met:\n  - A 200 OK response is returned with status `COMPLETED`, indicating successful signing\n  - Any other error response is returned, indicating that the signing process has failed and polling must stop\n\n### Parameters\n\n- `challengeId: string`\n\n### Returns\n\n- `{ status?: 'PENDING_CODE' | 'PENDING_SIGNING' | 'COMPLETED'; verificationCode?: string; }`\n\n  - `status?: 'PENDING_CODE' | 'PENDING_SIGNING' | 'COMPLETED'`\n  - `verificationCode?: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.documentsSigning.unauthenticated.skID.smartID.signature.confirm('2751d7d9-df79-4412-b4c4-28aaa7075548');\n\nconsole.log(response);\n```",
    perLanguage: {
      typescript: {
        method: 'client.documentsSigning.unauthenticated.skID.smartID.signature.confirm',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.documentsSigning.unauthenticated.skID.smartID.signature.confirm(\n  '2751d7d9-df79-4412-b4c4-28aaa7075548',\n);\n\nconsole.log(response.status);",
      },
      python: {
        method: 'documents_signing.unauthenticated.sk_id.smart_id.signature.confirm',
        example:
          'from plumery import Plumery\n\nclient = Plumery()\nresponse = client.documents_signing.unauthenticated.sk_id.smart_id.signature.confirm(\n    "2751d7d9-df79-4412-b4c4-28aaa7075548",\n)\nprint(response.status)',
      },
      java: {
        method: 'documentsSigning().unauthenticated().skId().smartId().signature().confirm',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.documentssigning.unauthenticated.skid.smartid.signature.SignatureConfirmParams;\nimport com.plumery.api.models.documentssigning.unauthenticated.skid.smartid.signature.SignatureConfirmResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        SignatureConfirmResponse response = client.documentsSigning().unauthenticated().skId().smartId().signature().confirm("2751d7d9-df79-4412-b4c4-28aaa7075548");\n    }\n}',
      },
      kotlin: {
        method: 'documentsSigning().unauthenticated().skId().smartId().signature().confirm',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.documentssigning.unauthenticated.skid.smartid.signature.SignatureConfirmParams\nimport com.plumery.api.models.documentssigning.unauthenticated.skid.smartid.signature.SignatureConfirmResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val response: SignatureConfirmResponse = client.documentsSigning().unauthenticated().skId().smartId().signature().confirm("2751d7d9-df79-4412-b4c4-28aaa7075548")\n}',
      },
      go: {
        method: 'client.DocumentsSigning.Unauthenticated.SkID.SmartID.Signature.Confirm',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tresponse, err := client.DocumentsSigning.Unauthenticated.SkID.SmartID.Signature.Confirm(context.TODO(), "2751d7d9-df79-4412-b4c4-28aaa7075548")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.Status)\n}\n',
      },
      cli: {
        method: 'signature confirm',
        example:
          "plumery documents-signing:unauthenticated:sk-id:smart-id:signature confirm \\\n  --session 'My Session' \\\n  --challenge-id 2751d7d9-df79-4412-b4c4-28aaa7075548",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/documents-signing/unauthenticated/sk-id/smart-id/signature/$CHALLENGE_ID:confirm \\\n    -X POST',
      },
    },
  },
  {
    name: 'initiate',
    endpoint: '/api/v1/documents-signing/unauthenticated/sk-id/mobile-id/signature/{challengeId}:initiate',
    httpMethod: 'post',
    summary: 'Initiate Mobile-ID documents signing challenge',
    description:
      'Initiates SK-ID Mobile-ID documents signing challenge.\n\nThis endpoint initiates the document signing process and returns the current signing session status.\n- When the status is `PENDING_CODE`, the signing session is not fully initialized and the verification code is not present in the response.\n- When the status is `PENDING_SIGNATURE`, the signing session is fully initialized and the response includes a verification code that the end user must confirm in the SK-ID Mobile-ID application.',
    stainlessPath:
      '(resource) documentsSigning.unauthenticated.sk-id.mobile-id.signature > (method) initiate',
    qualified: 'client.documentsSigning.unauthenticated.skID.mobileID.signature.initiate',
    params: [
      'challengeId: string;',
      'personalId: string;',
      'phoneNumber: string;',
      'preferredLanguage?: string;',
    ],
    response: "{ status?: 'PENDING_CODE' | 'PENDING_SIGNING'; verificationCode?: string; }",
    markdown:
      "## initiate\n\n`client.documentsSigning.unauthenticated.skID.mobileID.signature.initiate(challengeId: string, personalId: string, phoneNumber: string, preferredLanguage?: string): { status?: 'PENDING_CODE' | 'PENDING_SIGNING'; verificationCode?: string; }`\n\n**post** `/api/v1/documents-signing/unauthenticated/sk-id/mobile-id/signature/{challengeId}:initiate`\n\nInitiates SK-ID Mobile-ID documents signing challenge.\n\nThis endpoint initiates the document signing process and returns the current signing session status.\n- When the status is `PENDING_CODE`, the signing session is not fully initialized and the verification code is not present in the response.\n- When the status is `PENDING_SIGNATURE`, the signing session is fully initialized and the response includes a verification code that the end user must confirm in the SK-ID Mobile-ID application.\n\n### Parameters\n\n- `challengeId: string`\n\n- `personalId: string`\n  National ID / Personal identification number\n\n- `phoneNumber: string`\n  Phone number of the individual\n\n- `preferredLanguage?: string`\n  Preferred language of the individual\n\n### Returns\n\n- `{ status?: 'PENDING_CODE' | 'PENDING_SIGNING'; verificationCode?: string; }`\n\n  - `status?: 'PENDING_CODE' | 'PENDING_SIGNING'`\n  - `verificationCode?: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.documentsSigning.unauthenticated.skID.mobileID.signature.initiate('2751d7d9-df79-4412-b4c4-28aaa7075548', { personalId: '12345678901', phoneNumber: '+46991022' });\n\nconsole.log(response);\n```",
    perLanguage: {
      typescript: {
        method: 'client.documentsSigning.unauthenticated.skID.mobileID.signature.initiate',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.documentsSigning.unauthenticated.skID.mobileID.signature.initiate(\n  '2751d7d9-df79-4412-b4c4-28aaa7075548',\n  { personalId: '12345678901', phoneNumber: '+46991022' },\n);\n\nconsole.log(response.status);",
      },
      python: {
        method: 'documents_signing.unauthenticated.sk_id.mobile_id.signature.initiate',
        example:
          'from plumery import Plumery\n\nclient = Plumery()\nresponse = client.documents_signing.unauthenticated.sk_id.mobile_id.signature.initiate(\n    challenge_id="2751d7d9-df79-4412-b4c4-28aaa7075548",\n    personal_id="12345678901",\n    phone_number="+46991022",\n)\nprint(response.status)',
      },
      java: {
        method: 'documentsSigning().unauthenticated().skId().mobileId().signature().initiate',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.documentssigning.unauthenticated.skid.mobileid.signature.SignatureInitiateParams;\nimport com.plumery.api.models.documentssigning.unauthenticated.skid.mobileid.signature.SignatureInitiateResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        SignatureInitiateParams params = SignatureInitiateParams.builder()\n            .challengeId("2751d7d9-df79-4412-b4c4-28aaa7075548")\n            .personalId("12345678901")\n            .phoneNumber("+46991022")\n            .build();\n        SignatureInitiateResponse response = client.documentsSigning().unauthenticated().skId().mobileId().signature().initiate(params);\n    }\n}',
      },
      kotlin: {
        method: 'documentsSigning().unauthenticated().skId().mobileId().signature().initiate',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.documentssigning.unauthenticated.skid.mobileid.signature.SignatureInitiateParams\nimport com.plumery.api.models.documentssigning.unauthenticated.skid.mobileid.signature.SignatureInitiateResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: SignatureInitiateParams = SignatureInitiateParams.builder()\n        .challengeId("2751d7d9-df79-4412-b4c4-28aaa7075548")\n        .personalId("12345678901")\n        .phoneNumber("+46991022")\n        .build()\n    val response: SignatureInitiateResponse = client.documentsSigning().unauthenticated().skId().mobileId().signature().initiate(params)\n}',
      },
      go: {
        method: 'client.DocumentsSigning.Unauthenticated.SkID.MobileID.Signature.Initiate',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tresponse, err := client.DocumentsSigning.Unauthenticated.SkID.MobileID.Signature.Initiate(\n\t\tcontext.TODO(),\n\t\t"2751d7d9-df79-4412-b4c4-28aaa7075548",\n\t\tplumery.DocumentsSigningUnauthenticatedSkIDMobileIDSignatureInitiateParams{\n\t\t\tPersonalID:  plumery.F("12345678901"),\n\t\t\tPhoneNumber: plumery.F("+46991022"),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.Status)\n}\n',
      },
      cli: {
        method: 'signature initiate',
        example:
          "plumery documents-signing:unauthenticated:sk-id:mobile-id:signature initiate \\\n  --session 'My Session' \\\n  --challenge-id 2751d7d9-df79-4412-b4c4-28aaa7075548 \\\n  --personal-id 12345678901 \\\n  --phone-number +46991022",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/documents-signing/unauthenticated/sk-id/mobile-id/signature/$CHALLENGE_ID:initiate \\\n    -H \'Content-Type: application/json\' \\\n    -d \'{\n          "personalId": "12345678901",\n          "phoneNumber": "+46991022",\n          "preferredLanguage": "UK"\n        }\'',
      },
    },
  },
  {
    name: 'confirm',
    endpoint: '/api/v1/documents-signing/unauthenticated/sk-id/mobile-id/signature/{challengeId}:confirm',
    httpMethod: 'post',
    summary: 'Confirm SK-ID Mobile-ID documents signing challenge',
    description:
      'Confirms SK-ID Mobile-ID documents signing challenge.\n\nThis endpoint initiates a signing session by sending a notification to the user’s phone, prompting them to confirm the signing request.\nThe client must then poll this endpoint to track the signing session status until the process is completed or fails.\n\nThe signing session progresses through the following statuses:\n  - `PENDING_CODE`\n    The signing session has been created, but is not fully initialized yet.\n    The verification code is not returned at this stage.\n\n  - `PENDING_SIGNATURE`\n    The signing session is fully initialized.\n    The verification code is returned and the user is expected to confirm the signing on their device.\n\n  - `COMPLETED`\n    The signing has been successfully completed.\n    The signature is verified and saved.\n\nThe client must poll this endpoint repeatedly until one of the following conditions is met:\n  - A 200 OK response is returned with status `COMPLETED`, indicating successful signing\n  - Any other error response is returned, indicating that the signing process has failed and polling must stop',
    stainlessPath: '(resource) documentsSigning.unauthenticated.sk-id.mobile-id.signature > (method) confirm',
    qualified: 'client.documentsSigning.unauthenticated.skID.mobileID.signature.confirm',
    params: ['challengeId: string;'],
    response: "{ status?: 'PENDING_CODE' | 'PENDING_SIGNING' | 'COMPLETED'; verificationCode?: string; }",
    markdown:
      "## confirm\n\n`client.documentsSigning.unauthenticated.skID.mobileID.signature.confirm(challengeId: string): { status?: 'PENDING_CODE' | 'PENDING_SIGNING' | 'COMPLETED'; verificationCode?: string; }`\n\n**post** `/api/v1/documents-signing/unauthenticated/sk-id/mobile-id/signature/{challengeId}:confirm`\n\nConfirms SK-ID Mobile-ID documents signing challenge.\n\nThis endpoint initiates a signing session by sending a notification to the user’s phone, prompting them to confirm the signing request.\nThe client must then poll this endpoint to track the signing session status until the process is completed or fails.\n\nThe signing session progresses through the following statuses:\n  - `PENDING_CODE`\n    The signing session has been created, but is not fully initialized yet.\n    The verification code is not returned at this stage.\n\n  - `PENDING_SIGNATURE`\n    The signing session is fully initialized.\n    The verification code is returned and the user is expected to confirm the signing on their device.\n\n  - `COMPLETED`\n    The signing has been successfully completed.\n    The signature is verified and saved.\n\nThe client must poll this endpoint repeatedly until one of the following conditions is met:\n  - A 200 OK response is returned with status `COMPLETED`, indicating successful signing\n  - Any other error response is returned, indicating that the signing process has failed and polling must stop\n\n### Parameters\n\n- `challengeId: string`\n\n### Returns\n\n- `{ status?: 'PENDING_CODE' | 'PENDING_SIGNING' | 'COMPLETED'; verificationCode?: string; }`\n\n  - `status?: 'PENDING_CODE' | 'PENDING_SIGNING' | 'COMPLETED'`\n  - `verificationCode?: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.documentsSigning.unauthenticated.skID.mobileID.signature.confirm('2751d7d9-df79-4412-b4c4-28aaa7075548');\n\nconsole.log(response);\n```",
    perLanguage: {
      typescript: {
        method: 'client.documentsSigning.unauthenticated.skID.mobileID.signature.confirm',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.documentsSigning.unauthenticated.skID.mobileID.signature.confirm(\n  '2751d7d9-df79-4412-b4c4-28aaa7075548',\n);\n\nconsole.log(response.status);",
      },
      python: {
        method: 'documents_signing.unauthenticated.sk_id.mobile_id.signature.confirm',
        example:
          'from plumery import Plumery\n\nclient = Plumery()\nresponse = client.documents_signing.unauthenticated.sk_id.mobile_id.signature.confirm(\n    "2751d7d9-df79-4412-b4c4-28aaa7075548",\n)\nprint(response.status)',
      },
      java: {
        method: 'documentsSigning().unauthenticated().skId().mobileId().signature().confirm',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.documentssigning.unauthenticated.skid.mobileid.signature.SignatureConfirmParams;\nimport com.plumery.api.models.documentssigning.unauthenticated.skid.mobileid.signature.SignatureConfirmResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        SignatureConfirmResponse response = client.documentsSigning().unauthenticated().skId().mobileId().signature().confirm("2751d7d9-df79-4412-b4c4-28aaa7075548");\n    }\n}',
      },
      kotlin: {
        method: 'documentsSigning().unauthenticated().skId().mobileId().signature().confirm',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.documentssigning.unauthenticated.skid.mobileid.signature.SignatureConfirmParams\nimport com.plumery.api.models.documentssigning.unauthenticated.skid.mobileid.signature.SignatureConfirmResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val response: SignatureConfirmResponse = client.documentsSigning().unauthenticated().skId().mobileId().signature().confirm("2751d7d9-df79-4412-b4c4-28aaa7075548")\n}',
      },
      go: {
        method: 'client.DocumentsSigning.Unauthenticated.SkID.MobileID.Signature.Confirm',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tresponse, err := client.DocumentsSigning.Unauthenticated.SkID.MobileID.Signature.Confirm(context.TODO(), "2751d7d9-df79-4412-b4c4-28aaa7075548")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.Status)\n}\n',
      },
      cli: {
        method: 'signature confirm',
        example:
          "plumery documents-signing:unauthenticated:sk-id:mobile-id:signature confirm \\\n  --session 'My Session' \\\n  --challenge-id 2751d7d9-df79-4412-b4c4-28aaa7075548",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/documents-signing/unauthenticated/sk-id/mobile-id/signature/$CHALLENGE_ID:confirm \\\n    -X POST',
      },
    },
  },
  {
    name: 'initiate',
    endpoint: '/api/v1/documents-signing/sk-id/smart-id/signature/{challengeId}:initiate',
    httpMethod: 'post',
    summary: 'Initiate Smart-ID documents signing challenge',
    description:
      'Initiates SK-ID Smart-ID documents signing challenge. Requires a valid session token.\n\nThis endpoint initiates the document signing process and returns the current signing session status.\n- When the status is `PENDING_CODE`, the signing session is not fully initialized and the verification code is not present in the response.\n- When the status is `PENDING_SIGNATURE`, the signing session is fully initialized and the response includes a verification code that the end user must confirm in the SK-ID Smart-ID application.',
    stainlessPath: '(resource) documentsSigning.sk-id.smart-id.signature > (method) initiate',
    qualified: 'client.documentsSigning.skID.smartID.signature.initiate',
    params: ['challengeId: string;'],
    response: "{ status?: 'PENDING_CODE' | 'PENDING_SIGNING'; verificationCode?: string; }",
    markdown:
      "## initiate\n\n`client.documentsSigning.skID.smartID.signature.initiate(challengeId: string): { status?: 'PENDING_CODE' | 'PENDING_SIGNING'; verificationCode?: string; }`\n\n**post** `/api/v1/documents-signing/sk-id/smart-id/signature/{challengeId}:initiate`\n\nInitiates SK-ID Smart-ID documents signing challenge. Requires a valid session token.\n\nThis endpoint initiates the document signing process and returns the current signing session status.\n- When the status is `PENDING_CODE`, the signing session is not fully initialized and the verification code is not present in the response.\n- When the status is `PENDING_SIGNATURE`, the signing session is fully initialized and the response includes a verification code that the end user must confirm in the SK-ID Smart-ID application.\n\n### Parameters\n\n- `challengeId: string`\n\n### Returns\n\n- `{ status?: 'PENDING_CODE' | 'PENDING_SIGNING'; verificationCode?: string; }`\n\n  - `status?: 'PENDING_CODE' | 'PENDING_SIGNING'`\n  - `verificationCode?: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.documentsSigning.skID.smartID.signature.initiate('2751d7d9-df79-4412-b4c4-28aaa7075548');\n\nconsole.log(response);\n```",
    perLanguage: {
      typescript: {
        method: 'client.documentsSigning.skID.smartID.signature.initiate',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nconst response = await client.documentsSigning.skID.smartID.signature.initiate(\n  '2751d7d9-df79-4412-b4c4-28aaa7075548',\n);\n\nconsole.log(response.status);",
      },
      python: {
        method: 'documents_signing.sk_id.smart_id.signature.initiate',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nresponse = client.documents_signing.sk_id.smart_id.signature.initiate(\n    "2751d7d9-df79-4412-b4c4-28aaa7075548",\n)\nprint(response.status)',
      },
      java: {
        method: 'documentsSigning().skId().smartId().signature().initiate',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.documentssigning.skid.smartid.signature.SignatureInitiateParams;\nimport com.plumery.api.models.documentssigning.skid.smartid.signature.SignatureInitiateResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        SignatureInitiateResponse response = client.documentsSigning().skId().smartId().signature().initiate("2751d7d9-df79-4412-b4c4-28aaa7075548");\n    }\n}',
      },
      kotlin: {
        method: 'documentsSigning().skId().smartId().signature().initiate',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.documentssigning.skid.smartid.signature.SignatureInitiateParams\nimport com.plumery.api.models.documentssigning.skid.smartid.signature.SignatureInitiateResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val response: SignatureInitiateResponse = client.documentsSigning().skId().smartId().signature().initiate("2751d7d9-df79-4412-b4c4-28aaa7075548")\n}',
      },
      go: {
        method: 'client.DocumentsSigning.SkID.SmartID.Signature.Initiate',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tresponse, err := client.DocumentsSigning.SkID.SmartID.Signature.Initiate(context.TODO(), "2751d7d9-df79-4412-b4c4-28aaa7075548")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.Status)\n}\n',
      },
      cli: {
        method: 'signature initiate',
        example:
          "plumery documents-signing:sk-id:smart-id:signature initiate \\\n  --session 'My Session' \\\n  --challenge-id 2751d7d9-df79-4412-b4c4-28aaa7075548",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/documents-signing/sk-id/smart-id/signature/$CHALLENGE_ID:initiate \\\n    -X POST \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'confirm',
    endpoint: '/api/v1/documents-signing/sk-id/smart-id/signature/{challengeId}:confirm',
    httpMethod: 'post',
    summary: 'Confirm SK-ID Smart-ID documents signing challenge',
    description:
      'Confirms SK-ID Smart-ID documents signing challenge. Requires a valid session token.\n\nThis endpoint initiates a signing session by sending a notification to the user’s phone, prompting them to confirm the signing request.\nThe client must then poll this endpoint to track the signing session status until the process is completed or fails.\n\nThe signing session progresses through the following statuses:\n  - `PENDING_CODE`\n    The signing session has been created, but is not fully initialized yet.\n    The verification code is not returned at this stage.\n\n  - `PENDING_SIGNATURE`\n    The signing session is fully initialized.\n    The verification code is returned and the user is expected to confirm the signing on their device.\n\n  - `COMPLETED`\n    The signing has been successfully completed.\n    The signature is verified and saved.\n\nThe client must poll this endpoint repeatedly until one of the following conditions is met:\n  - A 200 OK response is returned with status `COMPLETED`, indicating successful signing\n  - Any other error response is returned, indicating that the signing process has failed and polling must stop',
    stainlessPath: '(resource) documentsSigning.sk-id.smart-id.signature > (method) confirm',
    qualified: 'client.documentsSigning.skID.smartID.signature.confirm',
    params: ['challengeId: string;'],
    response: "{ status?: 'PENDING_CODE' | 'PENDING_SIGNING' | 'COMPLETED'; verificationCode?: string; }",
    markdown:
      "## confirm\n\n`client.documentsSigning.skID.smartID.signature.confirm(challengeId: string): { status?: 'PENDING_CODE' | 'PENDING_SIGNING' | 'COMPLETED'; verificationCode?: string; }`\n\n**post** `/api/v1/documents-signing/sk-id/smart-id/signature/{challengeId}:confirm`\n\nConfirms SK-ID Smart-ID documents signing challenge. Requires a valid session token.\n\nThis endpoint initiates a signing session by sending a notification to the user’s phone, prompting them to confirm the signing request.\nThe client must then poll this endpoint to track the signing session status until the process is completed or fails.\n\nThe signing session progresses through the following statuses:\n  - `PENDING_CODE`\n    The signing session has been created, but is not fully initialized yet.\n    The verification code is not returned at this stage.\n\n  - `PENDING_SIGNATURE`\n    The signing session is fully initialized.\n    The verification code is returned and the user is expected to confirm the signing on their device.\n\n  - `COMPLETED`\n    The signing has been successfully completed.\n    The signature is verified and saved.\n\nThe client must poll this endpoint repeatedly until one of the following conditions is met:\n  - A 200 OK response is returned with status `COMPLETED`, indicating successful signing\n  - Any other error response is returned, indicating that the signing process has failed and polling must stop\n\n### Parameters\n\n- `challengeId: string`\n\n### Returns\n\n- `{ status?: 'PENDING_CODE' | 'PENDING_SIGNING' | 'COMPLETED'; verificationCode?: string; }`\n\n  - `status?: 'PENDING_CODE' | 'PENDING_SIGNING' | 'COMPLETED'`\n  - `verificationCode?: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.documentsSigning.skID.smartID.signature.confirm('2751d7d9-df79-4412-b4c4-28aaa7075548');\n\nconsole.log(response);\n```",
    perLanguage: {
      typescript: {
        method: 'client.documentsSigning.skID.smartID.signature.confirm',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nconst response = await client.documentsSigning.skID.smartID.signature.confirm(\n  '2751d7d9-df79-4412-b4c4-28aaa7075548',\n);\n\nconsole.log(response.status);",
      },
      python: {
        method: 'documents_signing.sk_id.smart_id.signature.confirm',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nresponse = client.documents_signing.sk_id.smart_id.signature.confirm(\n    "2751d7d9-df79-4412-b4c4-28aaa7075548",\n)\nprint(response.status)',
      },
      java: {
        method: 'documentsSigning().skId().smartId().signature().confirm',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.documentssigning.skid.smartid.signature.SignatureConfirmParams;\nimport com.plumery.api.models.documentssigning.skid.smartid.signature.SignatureConfirmResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        SignatureConfirmResponse response = client.documentsSigning().skId().smartId().signature().confirm("2751d7d9-df79-4412-b4c4-28aaa7075548");\n    }\n}',
      },
      kotlin: {
        method: 'documentsSigning().skId().smartId().signature().confirm',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.documentssigning.skid.smartid.signature.SignatureConfirmParams\nimport com.plumery.api.models.documentssigning.skid.smartid.signature.SignatureConfirmResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val response: SignatureConfirmResponse = client.documentsSigning().skId().smartId().signature().confirm("2751d7d9-df79-4412-b4c4-28aaa7075548")\n}',
      },
      go: {
        method: 'client.DocumentsSigning.SkID.SmartID.Signature.Confirm',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tresponse, err := client.DocumentsSigning.SkID.SmartID.Signature.Confirm(context.TODO(), "2751d7d9-df79-4412-b4c4-28aaa7075548")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.Status)\n}\n',
      },
      cli: {
        method: 'signature confirm',
        example:
          "plumery documents-signing:sk-id:smart-id:signature confirm \\\n  --session 'My Session' \\\n  --challenge-id 2751d7d9-df79-4412-b4c4-28aaa7075548",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/documents-signing/sk-id/smart-id/signature/$CHALLENGE_ID:confirm \\\n    -X POST \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'initiate',
    endpoint: '/api/v1/documents-signing/sk-id/mobile-id/signature/{challengeId}:initiate',
    httpMethod: 'post',
    summary: 'Initiate Mobile-ID documents signing challenge',
    description:
      'Initiates SK-ID Mobile-ID documents signing challenge. Requires a valid session token.\n\nThis endpoint initiates the document signing process and returns the current signing session status.\n- When the status is `PENDING_CODE`, the signing session is not fully initialized and the verification code is not present in the response.\n- When the status is `PENDING_SIGNATURE`, the signing session is fully initialized and the response includes a verification code that the end user must confirm in the SK-ID Mobile-ID application.',
    stainlessPath: '(resource) documentsSigning.sk-id.mobile-id.signature > (method) initiate',
    qualified: 'client.documentsSigning.skID.mobileID.signature.initiate',
    params: ['challengeId: string;'],
    response: "{ status?: 'PENDING_CODE' | 'PENDING_SIGNING'; verificationCode?: string; }",
    markdown:
      "## initiate\n\n`client.documentsSigning.skID.mobileID.signature.initiate(challengeId: string): { status?: 'PENDING_CODE' | 'PENDING_SIGNING'; verificationCode?: string; }`\n\n**post** `/api/v1/documents-signing/sk-id/mobile-id/signature/{challengeId}:initiate`\n\nInitiates SK-ID Mobile-ID documents signing challenge. Requires a valid session token.\n\nThis endpoint initiates the document signing process and returns the current signing session status.\n- When the status is `PENDING_CODE`, the signing session is not fully initialized and the verification code is not present in the response.\n- When the status is `PENDING_SIGNATURE`, the signing session is fully initialized and the response includes a verification code that the end user must confirm in the SK-ID Mobile-ID application.\n\n### Parameters\n\n- `challengeId: string`\n\n### Returns\n\n- `{ status?: 'PENDING_CODE' | 'PENDING_SIGNING'; verificationCode?: string; }`\n\n  - `status?: 'PENDING_CODE' | 'PENDING_SIGNING'`\n  - `verificationCode?: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.documentsSigning.skID.mobileID.signature.initiate('2751d7d9-df79-4412-b4c4-28aaa7075548');\n\nconsole.log(response);\n```",
    perLanguage: {
      typescript: {
        method: 'client.documentsSigning.skID.mobileID.signature.initiate',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nconst response = await client.documentsSigning.skID.mobileID.signature.initiate(\n  '2751d7d9-df79-4412-b4c4-28aaa7075548',\n);\n\nconsole.log(response.status);",
      },
      python: {
        method: 'documents_signing.sk_id.mobile_id.signature.initiate',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nresponse = client.documents_signing.sk_id.mobile_id.signature.initiate(\n    "2751d7d9-df79-4412-b4c4-28aaa7075548",\n)\nprint(response.status)',
      },
      java: {
        method: 'documentsSigning().skId().mobileId().signature().initiate',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.documentssigning.skid.mobileid.signature.SignatureInitiateParams;\nimport com.plumery.api.models.documentssigning.skid.mobileid.signature.SignatureInitiateResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        SignatureInitiateResponse response = client.documentsSigning().skId().mobileId().signature().initiate("2751d7d9-df79-4412-b4c4-28aaa7075548");\n    }\n}',
      },
      kotlin: {
        method: 'documentsSigning().skId().mobileId().signature().initiate',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.documentssigning.skid.mobileid.signature.SignatureInitiateParams\nimport com.plumery.api.models.documentssigning.skid.mobileid.signature.SignatureInitiateResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val response: SignatureInitiateResponse = client.documentsSigning().skId().mobileId().signature().initiate("2751d7d9-df79-4412-b4c4-28aaa7075548")\n}',
      },
      go: {
        method: 'client.DocumentsSigning.SkID.MobileID.Signature.Initiate',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tresponse, err := client.DocumentsSigning.SkID.MobileID.Signature.Initiate(context.TODO(), "2751d7d9-df79-4412-b4c4-28aaa7075548")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.Status)\n}\n',
      },
      cli: {
        method: 'signature initiate',
        example:
          "plumery documents-signing:sk-id:mobile-id:signature initiate \\\n  --session 'My Session' \\\n  --challenge-id 2751d7d9-df79-4412-b4c4-28aaa7075548",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/documents-signing/sk-id/mobile-id/signature/$CHALLENGE_ID:initiate \\\n    -X POST \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'confirm',
    endpoint: '/api/v1/documents-signing/sk-id/mobile-id/signature/{challengeId}:confirm',
    httpMethod: 'post',
    summary: 'Confirm SK-ID Mobile-ID documents signing challenge',
    description:
      'Confirms SK-ID Mobile-ID documents signing challenge. Requires a valid session token.\n\nThis endpoint initiates a signing session by sending a notification to the user’s phone, prompting them to confirm the signing request.\nThe client must then poll this endpoint to track the signing session status until the process is completed or fails.\n\nThe signing session progresses through the following statuses:\n  - `PENDING_CODE`\n    The signing session has been created, but is not fully initialized yet.\n    The verification code is not returned at this stage.\n\n  - `PENDING_SIGNATURE`\n    The signing session is fully initialized.\n    The verification code is returned and the user is expected to confirm the signing on their device.\n\n  - `COMPLETED`\n    The signing has been successfully completed.\n    The signature is verified and saved.\n\nThe client must poll this endpoint repeatedly until one of the following conditions is met:\n  - A 200 OK response is returned with status `COMPLETED`, indicating successful signing\n  - Any other error response is returned, indicating that the signing process has failed and polling must stop',
    stainlessPath: '(resource) documentsSigning.sk-id.mobile-id.signature > (method) confirm',
    qualified: 'client.documentsSigning.skID.mobileID.signature.confirm',
    params: ['challengeId: string;'],
    response: "{ status?: 'PENDING_CODE' | 'PENDING_SIGNING' | 'COMPLETED'; verificationCode?: string; }",
    markdown:
      "## confirm\n\n`client.documentsSigning.skID.mobileID.signature.confirm(challengeId: string): { status?: 'PENDING_CODE' | 'PENDING_SIGNING' | 'COMPLETED'; verificationCode?: string; }`\n\n**post** `/api/v1/documents-signing/sk-id/mobile-id/signature/{challengeId}:confirm`\n\nConfirms SK-ID Mobile-ID documents signing challenge. Requires a valid session token.\n\nThis endpoint initiates a signing session by sending a notification to the user’s phone, prompting them to confirm the signing request.\nThe client must then poll this endpoint to track the signing session status until the process is completed or fails.\n\nThe signing session progresses through the following statuses:\n  - `PENDING_CODE`\n    The signing session has been created, but is not fully initialized yet.\n    The verification code is not returned at this stage.\n\n  - `PENDING_SIGNATURE`\n    The signing session is fully initialized.\n    The verification code is returned and the user is expected to confirm the signing on their device.\n\n  - `COMPLETED`\n    The signing has been successfully completed.\n    The signature is verified and saved.\n\nThe client must poll this endpoint repeatedly until one of the following conditions is met:\n  - A 200 OK response is returned with status `COMPLETED`, indicating successful signing\n  - Any other error response is returned, indicating that the signing process has failed and polling must stop\n\n### Parameters\n\n- `challengeId: string`\n\n### Returns\n\n- `{ status?: 'PENDING_CODE' | 'PENDING_SIGNING' | 'COMPLETED'; verificationCode?: string; }`\n\n  - `status?: 'PENDING_CODE' | 'PENDING_SIGNING' | 'COMPLETED'`\n  - `verificationCode?: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.documentsSigning.skID.mobileID.signature.confirm('2751d7d9-df79-4412-b4c4-28aaa7075548');\n\nconsole.log(response);\n```",
    perLanguage: {
      typescript: {
        method: 'client.documentsSigning.skID.mobileID.signature.confirm',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nconst response = await client.documentsSigning.skID.mobileID.signature.confirm(\n  '2751d7d9-df79-4412-b4c4-28aaa7075548',\n);\n\nconsole.log(response.status);",
      },
      python: {
        method: 'documents_signing.sk_id.mobile_id.signature.confirm',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nresponse = client.documents_signing.sk_id.mobile_id.signature.confirm(\n    "2751d7d9-df79-4412-b4c4-28aaa7075548",\n)\nprint(response.status)',
      },
      java: {
        method: 'documentsSigning().skId().mobileId().signature().confirm',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.documentssigning.skid.mobileid.signature.SignatureConfirmParams;\nimport com.plumery.api.models.documentssigning.skid.mobileid.signature.SignatureConfirmResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        SignatureConfirmResponse response = client.documentsSigning().skId().mobileId().signature().confirm("2751d7d9-df79-4412-b4c4-28aaa7075548");\n    }\n}',
      },
      kotlin: {
        method: 'documentsSigning().skId().mobileId().signature().confirm',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.documentssigning.skid.mobileid.signature.SignatureConfirmParams\nimport com.plumery.api.models.documentssigning.skid.mobileid.signature.SignatureConfirmResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val response: SignatureConfirmResponse = client.documentsSigning().skId().mobileId().signature().confirm("2751d7d9-df79-4412-b4c4-28aaa7075548")\n}',
      },
      go: {
        method: 'client.DocumentsSigning.SkID.MobileID.Signature.Confirm',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tresponse, err := client.DocumentsSigning.SkID.MobileID.Signature.Confirm(context.TODO(), "2751d7d9-df79-4412-b4c4-28aaa7075548")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.Status)\n}\n',
      },
      cli: {
        method: 'signature confirm',
        example:
          "plumery documents-signing:sk-id:mobile-id:signature confirm \\\n  --session 'My Session' \\\n  --challenge-id 2751d7d9-df79-4412-b4c4-28aaa7075548",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/documents-signing/sk-id/mobile-id/signature/$CHALLENGE_ID:confirm \\\n    -X POST \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'list',
    endpoint: '/api/v1/address-suggestions',
    httpMethod: 'get',
    summary: 'Search for addresses',
    description:
      'Performs a partial address search and returns a list of matching address suggestions.\nSupports incremental search as the user types. This endpoint is publicly accessible\nand does not require authentication.\n',
    stainlessPath: '(resource) addressSuggestions > (method) list',
    qualified: 'client.addressSuggestions.list',
    params: ['address: string;', 'country?: string;', 'language?: string;', 'limit?: number;'],
    response: '{ suggestions?: { id: string; address: string; }[]; }',
    markdown:
      '## list\n\n`client.addressSuggestions.list(address: string, country?: string, language?: string, limit?: number): { suggestions?: object[]; }`\n\n**get** `/api/v1/address-suggestions`\n\nPerforms a partial address search and returns a list of matching address suggestions.\nSupports incremental search as the user types. This endpoint is publicly accessible\nand does not require authentication.\n\n\n### Parameters\n\n- `address: string`\n  Partial address search query (minimum 3 characters recommended)\n\n- `country?: string`\n  ISO alpha-2 country code to limit search scope\n\n- `language?: string`\n  ISO alpha-2 language code for address formatting and display preferences.\nAffects how addresses are formatted and returned by the provider (e.g., "en", "et", "fr").\nNot all providers support all languages - unsupported languages will fallback to provider defaults.\n\n\n- `limit?: number`\n  Maximum number of suggestions to return\n\n### Returns\n\n- `{ suggestions?: { id: string; address: string; }[]; }`\n\n  - `suggestions?: { id: string; address: string; }[]`\n\n### Example\n\n```typescript\nimport Plumery from \'plumery\';\n\nconst client = new Plumery();\n\nconst addressSuggestions = await client.addressSuggestions.list({ address: \'x\' });\n\nconsole.log(addressSuggestions);\n```',
    perLanguage: {
      typescript: {
        method: 'client.addressSuggestions.list',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst addressSuggestions = await client.addressSuggestions.list({ address: 'x' });\n\nconsole.log(addressSuggestions.suggestions);",
      },
      python: {
        method: 'address_suggestions.list',
        example:
          'from plumery import Plumery\n\nclient = Plumery()\naddress_suggestions = client.address_suggestions.list(\n    address="x",\n)\nprint(address_suggestions.suggestions)',
      },
      java: {
        method: 'addressSuggestions().list',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.addresssuggestions.AddressSuggestionListParams;\nimport com.plumery.api.models.addresssuggestions.AddressSuggestionListResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        AddressSuggestionListParams params = AddressSuggestionListParams.builder()\n            .address("x")\n            .build();\n        AddressSuggestionListResponse addressSuggestions = client.addressSuggestions().list(params);\n    }\n}',
      },
      kotlin: {
        method: 'addressSuggestions().list',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.addresssuggestions.AddressSuggestionListParams\nimport com.plumery.api.models.addresssuggestions.AddressSuggestionListResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: AddressSuggestionListParams = AddressSuggestionListParams.builder()\n        .address("x")\n        .build()\n    val addressSuggestions: AddressSuggestionListResponse = client.addressSuggestions().list(params)\n}',
      },
      go: {
        method: 'client.AddressSuggestions.List',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\taddressSuggestions, err := client.AddressSuggestions.List(context.TODO(), plumery.AddressSuggestionListParams{\n\t\tAddress: plumery.F("x"),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", addressSuggestions.Suggestions)\n}\n',
      },
      cli: {
        method: 'addressSuggestions list',
        example: "plumery address-suggestions list \\\n  --session 'My Session' \\\n  --address x",
      },
      http: {
        example: 'curl https://api.plumery.com/api/v1/address-suggestions',
      },
    },
  },
  {
    name: 'retrieve',
    endpoint: '/api/v1/address-suggestions/{addressId}',
    httpMethod: 'get',
    summary: 'Retrieve complete address details',
    description:
      "Retrieves the complete, standardised details for a specific address using the ID\nreturned from the search endpoint. This endpoint provides all address components\nfollowing Plumery's standard address model. This endpoint is publicly accessible\nand does not require authentication.\n",
    stainlessPath: '(resource) addressSuggestions > (method) retrieve',
    qualified: 'client.addressSuggestions.retrieve',
    params: ['addressId: string;'],
    response:
      '{ id: string; country: string; address?: string; buildingName?: string; buildingNumber?: string; countrySubDivision?: string; districtName?: string; floor?: string; language?: string; postBox?: string; postCode?: string; streetName?: string; suite?: string; townLocationName?: string; townName?: string; }',
    markdown:
      "## retrieve\n\n`client.addressSuggestions.retrieve(addressId: string): { id: string; country: string; address?: string; buildingName?: string; buildingNumber?: string; countrySubDivision?: string; districtName?: string; floor?: string; language?: string; postBox?: string; postCode?: string; streetName?: string; suite?: string; townLocationName?: string; townName?: string; }`\n\n**get** `/api/v1/address-suggestions/{addressId}`\n\nRetrieves the complete, standardised details for a specific address using the ID\nreturned from the search endpoint. This endpoint provides all address components\nfollowing Plumery's standard address model. This endpoint is publicly accessible\nand does not require authentication.\n\n\n### Parameters\n\n- `addressId: string`\n\n### Returns\n\n- `{ id: string; country: string; address?: string; buildingName?: string; buildingNumber?: string; countrySubDivision?: string; districtName?: string; floor?: string; language?: string; postBox?: string; postCode?: string; streetName?: string; suite?: string; townLocationName?: string; townName?: string; }`\n  Complete standardised address details following Plumery's address model\n\n  - `id: string`\n  - `country: string`\n  - `address?: string`\n  - `buildingName?: string`\n  - `buildingNumber?: string`\n  - `countrySubDivision?: string`\n  - `districtName?: string`\n  - `floor?: string`\n  - `language?: string`\n  - `postBox?: string`\n  - `postCode?: string`\n  - `streetName?: string`\n  - `suite?: string`\n  - `townLocationName?: string`\n  - `townName?: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst addressSuggestion = await client.addressSuggestions.retrieve('ADR_12345_EE_TALLINN_NARVAMNT7');\n\nconsole.log(addressSuggestion);\n```",
    perLanguage: {
      typescript: {
        method: 'client.addressSuggestions.retrieve',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst addressSuggestion = await client.addressSuggestions.retrieve(\n  'ADR_12345_EE_TALLINN_NARVAMNT7',\n);\n\nconsole.log(addressSuggestion.id);",
      },
      python: {
        method: 'address_suggestions.retrieve',
        example:
          'from plumery import Plumery\n\nclient = Plumery()\naddress_suggestion = client.address_suggestions.retrieve(\n    "ADR_12345_EE_TALLINN_NARVAMNT7",\n)\nprint(address_suggestion.id)',
      },
      java: {
        method: 'addressSuggestions().retrieve',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.addresssuggestions.AddressSuggestionRetrieveParams;\nimport com.plumery.api.models.addresssuggestions.AddressSuggestionRetrieveResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        AddressSuggestionRetrieveResponse addressSuggestion = client.addressSuggestions().retrieve("ADR_12345_EE_TALLINN_NARVAMNT7");\n    }\n}',
      },
      kotlin: {
        method: 'addressSuggestions().retrieve',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.addresssuggestions.AddressSuggestionRetrieveParams\nimport com.plumery.api.models.addresssuggestions.AddressSuggestionRetrieveResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val addressSuggestion: AddressSuggestionRetrieveResponse = client.addressSuggestions().retrieve("ADR_12345_EE_TALLINN_NARVAMNT7")\n}',
      },
      go: {
        method: 'client.AddressSuggestions.Get',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\taddressSuggestion, err := client.AddressSuggestions.Get(context.TODO(), "ADR_12345_EE_TALLINN_NARVAMNT7")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", addressSuggestion.ID)\n}\n',
      },
      cli: {
        method: 'addressSuggestions retrieve',
        example:
          "plumery address-suggestions retrieve \\\n  --session 'My Session' \\\n  --address-id ADR_12345_EE_TALLINN_NARVAMNT7",
      },
      http: {
        example: 'curl https://api.plumery.com/api/v1/address-suggestions/$ADDRESS_ID',
      },
    },
  },
  {
    name: 'create',
    endpoint: '/api/v1/test-users',
    httpMethod: 'post',
    summary: 'Create a new test user',
    description:
      'Creates a new test user.\nThis endpoint is designed for development and testing purposes only.\n',
    stainlessPath: '(resource) test-users > (method) create',
    qualified: 'client.testUsers.create',
    params: [
      'country: string;',
      'email: string;',
      'firstName: string;',
      'individualCoreId: string;',
      'individualCRMId: string;',
      'lastName: string;',
      'password: string;',
      'personalId: string;',
      'phoneNumber: string;',
      'username: string;',
      'X-Request-ID: string;',
      'preferredLanguage?: string;',
    ],
    response:
      '{ country: string; email: string; firstName: string; individualCoreId: string; individualCRMId: string; lastName: string; password: string; personalId: string; phoneNumber: string; userId: string; username: string; preferredLanguage?: string; }',
    markdown:
      "## create\n\n`client.testUsers.create(country: string, email: string, firstName: string, individualCoreId: string, individualCRMId: string, lastName: string, password: string, personalId: string, phoneNumber: string, username: string, X-Request-ID: string, preferredLanguage?: string): { country: string; email: string; firstName: string; individualCoreId: string; individualCRMId: string; lastName: string; password: string; personalId: string; phoneNumber: string; userId: string; username: string; preferredLanguage?: string; }`\n\n**post** `/api/v1/test-users`\n\nCreates a new test user.\nThis endpoint is designed for development and testing purposes only.\n\n\n### Parameters\n\n- `country: string`\n  ISO 3166-1 alpha-2 country code (e.g., \"US\", \"GB\", \"EE\")\n\n- `email: string`\n  User's email address (must be valid email format)\n\n- `firstName: string`\n  User's first name\n\n- `individualCoreId: string`\n  External ID in the banking core system (used as party ID)\n\n- `individualCRMId: string`\n  External ID in the CRM system\n\n- `lastName: string`\n  User's last name\n\n- `password: string`\n  User's password\n\n- `personalId: string`\n  National ID / Personal identification number\n\n- `phoneNumber: string`\n  User's phone number (international format)\n\n- `username: string`\n  Username for authentication\n\n- `X-Request-ID: string`\n\n- `preferredLanguage?: string`\n  Preferred language of the user. Language code as locale code. E.g. en-US, en-GB, nl-NL.\n\n### Returns\n\n- `{ country: string; email: string; firstName: string; individualCoreId: string; individualCRMId: string; lastName: string; password: string; personalId: string; phoneNumber: string; userId: string; username: string; preferredLanguage?: string; }`\n\n  - `country: string`\n  - `email: string`\n  - `firstName: string`\n  - `individualCoreId: string`\n  - `individualCRMId: string`\n  - `lastName: string`\n  - `password: string`\n  - `personalId: string`\n  - `phoneNumber: string`\n  - `userId: string`\n  - `username: string`\n  - `preferredLanguage?: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst testUser = await client.testUsers.create({\n  country: 'US',\n  email: 'john.doe@example.com',\n  firstName: 'John',\n  individualCoreId: 'core-123456',\n  individualCRMId: 'crm:123456',\n  lastName: 'Doe',\n  password: 'SecurePassword123!',\n  personalId: '12345678901',\n  phoneNumber: '+1234567890',\n  username: 'john.doe',\n  'X-Request-ID': '550e8400-e29b-41d4-a716-446655440000',\n});\n\nconsole.log(testUser);\n```",
    perLanguage: {
      typescript: {
        method: 'client.testUsers.create',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst testUser = await client.testUsers.create({\n  country: 'US',\n  email: 'john.doe@example.com',\n  firstName: 'John',\n  individualCoreId: 'core-123456',\n  individualCRMId: 'crm:123456',\n  lastName: 'Doe',\n  password: 'SecurePassword123!',\n  personalId: '12345678901',\n  phoneNumber: '+1234567890',\n  username: 'john.doe',\n  'X-Request-ID': '550e8400-e29b-41d4-a716-446655440000',\n});\n\nconsole.log(testUser.individualCoreId);",
      },
      python: {
        method: 'test_users.create',
        example:
          'from plumery import Plumery\n\nclient = Plumery()\ntest_user = client.test_users.create(\n    country="US",\n    email="john.doe@example.com",\n    first_name="John",\n    individual_core_id="core-123456",\n    individual_crm_id="crm:123456",\n    last_name="Doe",\n    password="SecurePassword123!",\n    personal_id="12345678901",\n    phone_number="+1234567890",\n    username="john.doe",\n    x_request_id="550e8400-e29b-41d4-a716-446655440000",\n)\nprint(test_user.individual_core_id)',
      },
      java: {
        method: 'testUsers().create',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.testusers.TestUserCreateParams;\nimport com.plumery.api.models.testusers.TestUserCreateResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        TestUserCreateParams params = TestUserCreateParams.builder()\n            .xRequestId("550e8400-e29b-41d4-a716-446655440000")\n            .country("US")\n            .email("john.doe@example.com")\n            .firstName("John")\n            .individualCoreId("core-123456")\n            .individualCrmId("crm:123456")\n            .lastName("Doe")\n            .password("SecurePassword123!")\n            .personalId("12345678901")\n            .phoneNumber("+1234567890")\n            .username("john.doe")\n            .build();\n        TestUserCreateResponse testUser = client.testUsers().create(params);\n    }\n}',
      },
      kotlin: {
        method: 'testUsers().create',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.testusers.TestUserCreateParams\nimport com.plumery.api.models.testusers.TestUserCreateResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: TestUserCreateParams = TestUserCreateParams.builder()\n        .xRequestId("550e8400-e29b-41d4-a716-446655440000")\n        .country("US")\n        .email("john.doe@example.com")\n        .firstName("John")\n        .individualCoreId("core-123456")\n        .individualCrmId("crm:123456")\n        .lastName("Doe")\n        .password("SecurePassword123!")\n        .personalId("12345678901")\n        .phoneNumber("+1234567890")\n        .username("john.doe")\n        .build()\n    val testUser: TestUserCreateResponse = client.testUsers().create(params)\n}',
      },
      go: {
        method: 'client.TestUsers.New',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\ttestUser, err := client.TestUsers.New(context.TODO(), plumery.TestUserNewParams{\n\t\tCountry:          plumery.F("US"),\n\t\tEmail:            plumery.F("john.doe@example.com"),\n\t\tFirstName:        plumery.F("John"),\n\t\tIndividualCoreID: plumery.F("core-123456"),\n\t\tIndividualCRMID:  plumery.F("crm:123456"),\n\t\tLastName:         plumery.F("Doe"),\n\t\tPassword:         plumery.F("SecurePassword123!"),\n\t\tPersonalID:       plumery.F("12345678901"),\n\t\tPhoneNumber:      plumery.F("+1234567890"),\n\t\tUsername:         plumery.F("john.doe"),\n\t\tXRequestID:       plumery.F("550e8400-e29b-41d4-a716-446655440000"),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", testUser.IndividualCoreID)\n}\n',
      },
      cli: {
        method: 'test-users create',
        example:
          "plumery test-users create \\\n  --session 'My Session' \\\n  --country US \\\n  --email john.doe@example.com \\\n  --first-name John \\\n  --individual-core-id core-123456 \\\n  --individual-crm-id crm:123456 \\\n  --last-name Doe \\\n  --password 'SecurePassword123!' \\\n  --personal-id 12345678901 \\\n  --phone-number +1234567890 \\\n  --username john.doe \\\n  --x-request-id 550e8400-e29b-41d4-a716-446655440000",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/test-users \\\n    -H \'Content-Type: application/json\' \\\n    -d \'{\n          "country": "US",\n          "email": "john.doe@example.com",\n          "firstName": "John",\n          "individualCoreId": "core-123456",\n          "individualCRMId": "crm:123456",\n          "lastName": "Doe",\n          "password": "SecurePassword123!",\n          "personalId": "12345678901",\n          "phoneNumber": "+1234567890",\n          "username": "john.doe",\n          "preferredLanguage": "en-US"\n        }\'',
      },
    },
  },
  {
    name: 'update',
    endpoint: '/api/v1/test-users/{username}:update',
    httpMethod: 'post',
    summary: 'Update test user',
    description:
      'Update a test user by username.\nOnly the fields present in the request body will be updated.\nThis endpoint is designed for development and testing purposes only.\nIf one of the external IDs is changed, the corresponding accounts, cards and transactions will no longer be valid.\n',
    stainlessPath: '(resource) test-users > (method) update',
    qualified: 'client.testUsers.update',
    params: [
      'username: string;',
      'X-Request-ID: string;',
      'country?: string;',
      'email?: string;',
      'firstName?: string;',
      'individualCoreId?: string;',
      'individualCRMId?: string;',
      'lastName?: string;',
      'personalId?: string;',
      'phoneNumber?: string;',
      'preferredLanguage?: string;',
    ],
    response:
      '{ country: string; email: string; firstName: string; individualCoreId: string; individualCRMId: string; lastName: string; password: string; personalId: string; phoneNumber: string; userId: string; username: string; preferredLanguage?: string; }',
    markdown:
      "## update\n\n`client.testUsers.update(username: string, X-Request-ID: string, country?: string, email?: string, firstName?: string, individualCoreId?: string, individualCRMId?: string, lastName?: string, personalId?: string, phoneNumber?: string, preferredLanguage?: string): { country: string; email: string; firstName: string; individualCoreId: string; individualCRMId: string; lastName: string; password: string; personalId: string; phoneNumber: string; userId: string; username: string; preferredLanguage?: string; }`\n\n**post** `/api/v1/test-users/{username}:update`\n\nUpdate a test user by username.\nOnly the fields present in the request body will be updated.\nThis endpoint is designed for development and testing purposes only.\nIf one of the external IDs is changed, the corresponding accounts, cards and transactions will no longer be valid.\n\n\n### Parameters\n\n- `username: string`\n\n- `X-Request-ID: string`\n\n- `country?: string`\n  ISO 3166-1 alpha-2 country code (e.g., \"US\", \"GB\", \"EE\")\n\n- `email?: string`\n  User's email address (must be valid email format)\n\n- `firstName?: string`\n  User's first name\n\n- `individualCoreId?: string`\n  External ID in the banking core system (used as party ID)\n\n- `individualCRMId?: string`\n  External ID in the CRM system\n\n- `lastName?: string`\n  User's last name\n\n- `personalId?: string`\n  National ID / Personal identification number\n\n- `phoneNumber?: string`\n  User's phone number (international format)\n\n- `preferredLanguage?: string`\n  Preferred language of the user. Language code as locale code. E.g. en-US, en-GB, nl-NL.\n\n### Returns\n\n- `{ country: string; email: string; firstName: string; individualCoreId: string; individualCRMId: string; lastName: string; password: string; personalId: string; phoneNumber: string; userId: string; username: string; preferredLanguage?: string; }`\n\n  - `country: string`\n  - `email: string`\n  - `firstName: string`\n  - `individualCoreId: string`\n  - `individualCRMId: string`\n  - `lastName: string`\n  - `password: string`\n  - `personalId: string`\n  - `phoneNumber: string`\n  - `userId: string`\n  - `username: string`\n  - `preferredLanguage?: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst testUser = await client.testUsers.update('john.doe', { 'X-Request-ID': '550e8400-e29b-41d4-a716-446655440000' });\n\nconsole.log(testUser);\n```",
    perLanguage: {
      typescript: {
        method: 'client.testUsers.update',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst testUser = await client.testUsers.update('john.doe', {\n  'X-Request-ID': '550e8400-e29b-41d4-a716-446655440000',\n  country: 'US',\n  email: 'john.doe@example.com',\n  firstName: 'John',\n  individualCoreId: 'core-123456',\n  lastName: 'Doe',\n  personalId: '12345678901',\n  phoneNumber: '+1234567890',\n});\n\nconsole.log(testUser.individualCoreId);",
      },
      python: {
        method: 'test_users.update',
        example:
          'from plumery import Plumery\n\nclient = Plumery()\ntest_user = client.test_users.update(\n    username="john.doe",\n    x_request_id="550e8400-e29b-41d4-a716-446655440000",\n    country="US",\n    email="john.doe@example.com",\n    first_name="John",\n    individual_core_id="core-123456",\n    last_name="Doe",\n    personal_id="12345678901",\n    phone_number="+1234567890",\n)\nprint(test_user.individual_core_id)',
      },
      java: {
        method: 'testUsers().update',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.testusers.TestUserUpdateParams;\nimport com.plumery.api.models.testusers.TestUserUpdateResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        TestUserUpdateParams params = TestUserUpdateParams.builder()\n            .username("john.doe")\n            .xRequestId("550e8400-e29b-41d4-a716-446655440000")\n            .build();\n        TestUserUpdateResponse testUser = client.testUsers().update(params);\n    }\n}',
      },
      kotlin: {
        method: 'testUsers().update',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.testusers.TestUserUpdateParams\nimport com.plumery.api.models.testusers.TestUserUpdateResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: TestUserUpdateParams = TestUserUpdateParams.builder()\n        .username("john.doe")\n        .xRequestId("550e8400-e29b-41d4-a716-446655440000")\n        .build()\n    val testUser: TestUserUpdateResponse = client.testUsers().update(params)\n}',
      },
      go: {
        method: 'client.TestUsers.Update',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\ttestUser, err := client.TestUsers.Update(\n\t\tcontext.TODO(),\n\t\t"john.doe",\n\t\tplumery.TestUserUpdateParams{\n\t\t\tXRequestID:       plumery.F("550e8400-e29b-41d4-a716-446655440000"),\n\t\t\tCountry:          plumery.F("US"),\n\t\t\tEmail:            plumery.F("john.doe@example.com"),\n\t\t\tFirstName:        plumery.F("John"),\n\t\t\tIndividualCoreID: plumery.F("core-123456"),\n\t\t\tLastName:         plumery.F("Doe"),\n\t\t\tPersonalID:       plumery.F("12345678901"),\n\t\t\tPhoneNumber:      plumery.F("+1234567890"),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", testUser.IndividualCoreID)\n}\n',
      },
      cli: {
        method: 'test-users update',
        example:
          "plumery test-users update \\\n  --session 'My Session' \\\n  --username john.doe \\\n  --x-request-id 550e8400-e29b-41d4-a716-446655440000",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/test-users/$USERNAME:update \\\n    -H \'Content-Type: application/json\' \\\n    -d \'{\n          "country": "US",\n          "email": "john.doe@example.com",\n          "firstName": "John",\n          "individualCoreId": "core-123456",\n          "individualCRMId": "crm:123456",\n          "lastName": "Doe",\n          "personalId": "12345678901",\n          "phoneNumber": "+1234567890",\n          "preferredLanguage": "en-US"\n        }\'',
      },
    },
  },
  {
    name: 'list',
    endpoint: '/api/v1/devices',
    httpMethod: 'get',
    summary: 'List Devices',
    description: 'Get list of registered devices for a user',
    stainlessPath: '(resource) devices > (method) list',
    qualified: 'client.devices.list',
    params: ['plmr-user-action?: boolean;'],
    response:
      '{ devices: { id: string; biometricsEnabled: boolean; createdAt: string; passcodeEnabled: boolean; info?: object; }[]; }',
    markdown:
      "## list\n\n`client.devices.list(plmr-user-action?: boolean): { devices: object[]; }`\n\n**get** `/api/v1/devices`\n\nGet list of registered devices for a user\n\n### Parameters\n\n- `plmr-user-action?: boolean`\n\n### Returns\n\n- `{ devices: { id: string; biometricsEnabled: boolean; createdAt: string; passcodeEnabled: boolean; info?: object; }[]; }`\n\n  - `devices: { id: string; biometricsEnabled: boolean; createdAt: string; passcodeEnabled: boolean; info?: object; }[]`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst devices = await client.devices.list();\n\nconsole.log(devices);\n```",
    perLanguage: {
      typescript: {
        method: 'client.devices.list',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nconst devices = await client.devices.list();\n\nconsole.log(devices.devices);",
      },
      python: {
        method: 'devices.list',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\ndevices = client.devices.list()\nprint(devices.devices)',
      },
      java: {
        method: 'devices().list',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.devices.DeviceListParams;\nimport com.plumery.api.models.devices.DeviceListResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        DeviceListResponse devices = client.devices().list();\n    }\n}',
      },
      kotlin: {
        method: 'devices().list',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.devices.DeviceListParams\nimport com.plumery.api.models.devices.DeviceListResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val devices: DeviceListResponse = client.devices().list()\n}',
      },
      go: {
        method: 'client.Devices.List',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tdevices, err := client.Devices.List(context.TODO(), plumery.DeviceListParams{})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", devices.Devices)\n}\n',
      },
      cli: {
        method: 'devices list',
        example: "plumery devices list \\\n  --session 'My Session'",
      },
      http: {
        example: 'curl https://api.plumery.com/api/v1/devices \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'create',
    endpoint: '/api/v1/devices',
    httpMethod: 'post',
    summary: 'Internal Device Registration',
    description: 'Internal - used by onboarding',
    stainlessPath: '(resource) devices > (method) create',
    qualified: 'client.devices.create',
    params: ['publicKey: string;', 'userId: string;', 'info?: object;', 'plmr-user-action?: boolean;'],
    response: '{ challenge: string; deviceId: string; expiresIn?: number; }',
    markdown:
      "## create\n\n`client.devices.create(publicKey: string, userId: string, info?: object, plmr-user-action?: boolean): { challenge: string; deviceId: string; expiresIn?: number; }`\n\n**post** `/api/v1/devices`\n\nInternal - used by onboarding\n\n### Parameters\n\n- `publicKey: string`\n\n- `userId: string`\n\n- `info?: object`\n\n- `plmr-user-action?: boolean`\n\n### Returns\n\n- `{ challenge: string; deviceId: string; expiresIn?: number; }`\n\n  - `challenge: string`\n  - `deviceId: string`\n  - `expiresIn?: number`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst device = await client.devices.create({ publicKey: 'P', userId: 'P' });\n\nconsole.log(device);\n```",
    perLanguage: {
      typescript: {
        method: 'client.devices.create',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nconst device = await client.devices.create({ publicKey: 'P', userId: 'P' });\n\nconsole.log(device.challenge);",
      },
      python: {
        method: 'devices.create',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\ndevice = client.devices.create(\n    public_key="P",\n    user_id="P",\n)\nprint(device.challenge)',
      },
      java: {
        method: 'devices().create',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.devices.DeviceCreateParams;\nimport com.plumery.api.models.devices.DeviceCreateResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        DeviceCreateParams params = DeviceCreateParams.builder()\n            .publicKey("P")\n            .userId("P")\n            .build();\n        DeviceCreateResponse device = client.devices().create(params);\n    }\n}',
      },
      kotlin: {
        method: 'devices().create',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.devices.DeviceCreateParams\nimport com.plumery.api.models.devices.DeviceCreateResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: DeviceCreateParams = DeviceCreateParams.builder()\n        .publicKey("P")\n        .userId("P")\n        .build()\n    val device: DeviceCreateResponse = client.devices().create(params)\n}',
      },
      go: {
        method: 'client.Devices.New',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tdevice, err := client.Devices.New(context.TODO(), plumery.DeviceNewParams{\n\t\tPublicKey: plumery.F("P"),\n\t\tUserID:    plumery.F("P"),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", device.Challenge)\n}\n',
      },
      cli: {
        method: 'devices create',
        example: "plumery devices create \\\n  --session 'My Session' \\\n  --public-key P \\\n  --user-id P",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/devices \\\n    -H \'Content-Type: application/json\' \\\n    -H "Cookie: $SESSION" \\\n    -d \'{\n          "publicKey": "P",\n          "userId": "P"\n        }\'',
      },
    },
  },
  {
    name: 'retrieve',
    endpoint: '/api/v1/devices/{deviceId}',
    httpMethod: 'get',
    summary: 'Get Device',
    description: 'Get a single registered device by ID',
    stainlessPath: '(resource) devices > (method) retrieve',
    qualified: 'client.devices.retrieve',
    params: ['deviceId: string;', 'plmr-user-action?: boolean;'],
    response:
      '{ id: string; biometricsEnabled: boolean; createdAt: string; passcodeEnabled: boolean; info?: object; }',
    markdown:
      "## retrieve\n\n`client.devices.retrieve(deviceId: string, plmr-user-action?: boolean): { id: string; biometricsEnabled: boolean; createdAt: string; passcodeEnabled: boolean; info?: object; }`\n\n**get** `/api/v1/devices/{deviceId}`\n\nGet a single registered device by ID\n\n### Parameters\n\n- `deviceId: string`\n\n- `plmr-user-action?: boolean`\n\n### Returns\n\n- `{ id: string; biometricsEnabled: boolean; createdAt: string; passcodeEnabled: boolean; info?: object; }`\n\n  - `id: string`\n  - `biometricsEnabled: boolean`\n  - `createdAt: string`\n  - `passcodeEnabled: boolean`\n  - `info?: object`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst device = await client.devices.retrieve('deviceId');\n\nconsole.log(device);\n```",
    perLanguage: {
      typescript: {
        method: 'client.devices.retrieve',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nconst device = await client.devices.retrieve('deviceId');\n\nconsole.log(device.id);",
      },
      python: {
        method: 'devices.retrieve',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\ndevice = client.devices.retrieve(\n    device_id="deviceId",\n)\nprint(device.id)',
      },
      java: {
        method: 'devices().retrieve',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.devices.DeviceRetrieveParams;\nimport com.plumery.api.models.devices.DeviceRetrieveResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        DeviceRetrieveResponse device = client.devices().retrieve("deviceId");\n    }\n}',
      },
      kotlin: {
        method: 'devices().retrieve',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.devices.DeviceRetrieveParams\nimport com.plumery.api.models.devices.DeviceRetrieveResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val device: DeviceRetrieveResponse = client.devices().retrieve("deviceId")\n}',
      },
      go: {
        method: 'client.Devices.Get',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tdevice, err := client.Devices.Get(\n\t\tcontext.TODO(),\n\t\t"deviceId",\n\t\tplumery.DeviceGetParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", device.ID)\n}\n',
      },
      cli: {
        method: 'devices retrieve',
        example: "plumery devices retrieve \\\n  --session 'My Session' \\\n  --device-id deviceId",
      },
      http: {
        example: 'curl https://api.plumery.com/api/v1/devices/$DEVICE_ID \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'delete',
    endpoint: '/api/v1/devices/{id}:delete',
    httpMethod: 'post',
    summary: 'Delete Device',
    description:
      "Delete a user's register device. This will terminate any active session exist for that device.",
    stainlessPath: '(resource) devices > (method) delete',
    qualified: 'client.devices.delete',
    params: ['id: string;', 'plmr-user-action?: boolean;'],
    markdown:
      "## delete\n\n`client.devices.delete(id: string, plmr-user-action?: boolean): void`\n\n**post** `/api/v1/devices/{id}:delete`\n\nDelete a user's register device. This will terminate any active session exist for that device.\n\n### Parameters\n\n- `id: string`\n\n- `plmr-user-action?: boolean`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nawait client.devices.delete('P')\n```",
    perLanguage: {
      typescript: {
        method: 'client.devices.delete',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nawait client.devices.delete('P');",
      },
      python: {
        method: 'devices.delete',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nclient.devices.delete(\n    id="P",\n)',
      },
      java: {
        method: 'devices().delete',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.devices.DeviceDeleteParams;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        client.devices().delete("P");\n    }\n}',
      },
      kotlin: {
        method: 'devices().delete',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.devices.DeviceDeleteParams\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    client.devices().delete("P")\n}',
      },
      go: {
        method: 'client.Devices.Delete',
        example:
          'package main\n\nimport (\n\t"context"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\terr := client.Devices.Delete(\n\t\tcontext.TODO(),\n\t\t"P",\n\t\tplumery.DeviceDeleteParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
      },
      cli: {
        method: 'devices delete',
        example: "plumery devices delete \\\n  --session 'My Session' \\\n  --id P",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/devices/$ID:delete \\\n    -X POST \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'sign',
    endpoint: '/api/v1/devices/{id}/challenges:sign',
    httpMethod: 'post',
    summary: 'Internal Device Binding',
    description: 'Internal Device Binding',
    stainlessPath: '(resource) devices.challenges > (method) sign',
    qualified: 'client.devices.challenges.sign',
    params: ['id: string;', 'signature: string;', 'plmr-user-action?: boolean;'],
    response:
      "{ nextStep: { challenge: string; info?: { status: 'PENDING_CODE' | 'PENDING_SIGNING'; verificationCode?: string; } | { verificationCode: string; } | { dataToSign: string; } | { availableSigningMethods: 'BIOMETRICS' | 'PASSCODE'[]; } | { code?: string; }; }; sessionId?: string; }",
    markdown:
      "## sign\n\n`client.devices.challenges.sign(id: string, signature: string, plmr-user-action?: boolean): { nextStep: object; sessionId?: string; }`\n\n**post** `/api/v1/devices/{id}/challenges:sign`\n\nInternal Device Binding\n\n### Parameters\n\n- `id: string`\n\n- `signature: string`\n\n- `plmr-user-action?: boolean`\n\n### Returns\n\n- `{ nextStep: { challenge: string; info?: { status: 'PENDING_CODE' | 'PENDING_SIGNING'; verificationCode?: string; } | { verificationCode: string; } | { dataToSign: string; } | { availableSigningMethods: 'BIOMETRICS' | 'PASSCODE'[]; } | { code?: string; }; }; sessionId?: string; }`\n\n  - `nextStep: { challenge: string; info?: { status: 'PENDING_CODE' | 'PENDING_SIGNING'; verificationCode?: string; } | { verificationCode: string; } | { dataToSign: string; } | { availableSigningMethods: 'BIOMETRICS' | 'PASSCODE'[]; } | { code?: string; }; }`\n  - `sessionId?: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.devices.challenges.sign('P', { signature: 'P' });\n\nconsole.log(response);\n```",
    perLanguage: {
      typescript: {
        method: 'client.devices.challenges.sign',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nconst response = await client.devices.challenges.sign('P', { signature: 'P' });\n\nconsole.log(response.nextStep);",
      },
      python: {
        method: 'devices.challenges.sign',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nresponse = client.devices.challenges.sign(\n    id="P",\n    signature="P",\n)\nprint(response.next_step)',
      },
      java: {
        method: 'devices().challenges().sign',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.devices.challenges.ChallengeSignParams;\nimport com.plumery.api.models.devices.challenges.ChallengeSignResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        ChallengeSignParams params = ChallengeSignParams.builder()\n            .id("P")\n            .signature("P")\n            .build();\n        ChallengeSignResponse response = client.devices().challenges().sign(params);\n    }\n}',
      },
      kotlin: {
        method: 'devices().challenges().sign',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.devices.challenges.ChallengeSignParams\nimport com.plumery.api.models.devices.challenges.ChallengeSignResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: ChallengeSignParams = ChallengeSignParams.builder()\n        .id("P")\n        .signature("P")\n        .build()\n    val response: ChallengeSignResponse = client.devices().challenges().sign(params)\n}',
      },
      go: {
        method: 'client.Devices.Challenges.Sign',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tresponse, err := client.Devices.Challenges.Sign(\n\t\tcontext.TODO(),\n\t\t"P",\n\t\tplumery.DeviceChallengeSignParams{\n\t\t\tSignature: plumery.F("P"),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.NextStep)\n}\n',
      },
      cli: {
        method: 'challenges sign',
        example:
          "plumery devices:challenges sign \\\n  --session 'My Session' \\\n  --id P \\\n  --signature P",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/devices/$ID/challenges:sign \\\n    -H \'Content-Type: application/json\' \\\n    -H "Cookie: $SESSION" \\\n    -d \'{\n          "signature": "P"\n        }\'',
      },
    },
  },
  {
    name: 'confirm',
    endpoint: '/api/v1/devices/{id}/challenges:confirm',
    httpMethod: 'post',
    summary: 'Internal Session Confirm',
    description: 'Internal Session Confirm',
    stainlessPath: '(resource) devices.challenges > (method) confirm',
    qualified: 'client.devices.challenges.confirm',
    params: ['id: string;', 'plmr-user-action?: boolean;'],
    response: '{ deviceId: string; confirmed?: boolean; }',
    markdown:
      "## confirm\n\n`client.devices.challenges.confirm(id: string, plmr-user-action?: boolean): { deviceId: string; confirmed?: boolean; }`\n\n**post** `/api/v1/devices/{id}/challenges:confirm`\n\nInternal Session Confirm\n\n### Parameters\n\n- `id: string`\n\n- `plmr-user-action?: boolean`\n\n### Returns\n\n- `{ deviceId: string; confirmed?: boolean; }`\n\n  - `deviceId: string`\n  - `confirmed?: boolean`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.devices.challenges.confirm('P');\n\nconsole.log(response);\n```",
    perLanguage: {
      typescript: {
        method: 'client.devices.challenges.confirm',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nconst response = await client.devices.challenges.confirm('P');\n\nconsole.log(response.deviceId);",
      },
      python: {
        method: 'devices.challenges.confirm',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nresponse = client.devices.challenges.confirm(\n    id="P",\n)\nprint(response.device_id)',
      },
      java: {
        method: 'devices().challenges().confirm',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.devices.challenges.ChallengeConfirmParams;\nimport com.plumery.api.models.devices.challenges.ChallengeConfirmResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        ChallengeConfirmResponse response = client.devices().challenges().confirm("P");\n    }\n}',
      },
      kotlin: {
        method: 'devices().challenges().confirm',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.devices.challenges.ChallengeConfirmParams\nimport com.plumery.api.models.devices.challenges.ChallengeConfirmResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val response: ChallengeConfirmResponse = client.devices().challenges().confirm("P")\n}',
      },
      go: {
        method: 'client.Devices.Challenges.Confirm',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tresponse, err := client.Devices.Challenges.Confirm(\n\t\tcontext.TODO(),\n\t\t"P",\n\t\tplumery.DeviceChallengeConfirmParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.DeviceID)\n}\n',
      },
      cli: {
        method: 'challenges confirm',
        example: "plumery devices:challenges confirm \\\n  --session 'My Session' \\\n  --id P",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/devices/$ID/challenges:confirm \\\n    -X POST \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'verifyOtp',
    endpoint: '/api/v1/devices/{id}/challenges/phone:verify-otp',
    httpMethod: 'post',
    summary: 'Internal OTP Validation',
    description: 'Internal OTP Validation',
    stainlessPath: '(resource) devices.challenges.phone > (method) verifyOtp',
    qualified: 'client.devices.challenges.phone.verifyOtp',
    params: ['id: string;', 'code: string;', 'plmr-user-action?: boolean;'],
    response:
      "{ nextStep: { challenge: string; info?: { status: 'PENDING_CODE' | 'PENDING_SIGNING'; verificationCode?: string; } | { verificationCode: string; } | { dataToSign: string; } | { availableSigningMethods: 'BIOMETRICS' | 'PASSCODE'[]; } | { code?: string; }; }; sessionId?: string; }",
    markdown:
      "## verifyOtp\n\n`client.devices.challenges.phone.verifyOtp(id: string, code: string, plmr-user-action?: boolean): { nextStep: object; sessionId?: string; }`\n\n**post** `/api/v1/devices/{id}/challenges/phone:verify-otp`\n\nInternal OTP Validation\n\n### Parameters\n\n- `id: string`\n\n- `code: string`\n\n- `plmr-user-action?: boolean`\n\n### Returns\n\n- `{ nextStep: { challenge: string; info?: { status: 'PENDING_CODE' | 'PENDING_SIGNING'; verificationCode?: string; } | { verificationCode: string; } | { dataToSign: string; } | { availableSigningMethods: 'BIOMETRICS' | 'PASSCODE'[]; } | { code?: string; }; }; sessionId?: string; }`\n\n  - `nextStep: { challenge: string; info?: { status: 'PENDING_CODE' | 'PENDING_SIGNING'; verificationCode?: string; } | { verificationCode: string; } | { dataToSign: string; } | { availableSigningMethods: 'BIOMETRICS' | 'PASSCODE'[]; } | { code?: string; }; }`\n  - `sessionId?: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.devices.challenges.phone.verifyOtp('P', { code: 'P' });\n\nconsole.log(response);\n```",
    perLanguage: {
      typescript: {
        method: 'client.devices.challenges.phone.verifyOtp',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nconst response = await client.devices.challenges.phone.verifyOtp('P', { code: 'P' });\n\nconsole.log(response.nextStep);",
      },
      python: {
        method: 'devices.challenges.phone.verify_otp',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nresponse = client.devices.challenges.phone.verify_otp(\n    id="P",\n    code="P",\n)\nprint(response.next_step)',
      },
      java: {
        method: 'devices().challenges().phone().verifyOtp',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.devices.challenges.phone.PhoneVerifyOtpParams;\nimport com.plumery.api.models.devices.challenges.phone.PhoneVerifyOtpResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        PhoneVerifyOtpParams params = PhoneVerifyOtpParams.builder()\n            .id("P")\n            .code("P")\n            .build();\n        PhoneVerifyOtpResponse response = client.devices().challenges().phone().verifyOtp(params);\n    }\n}',
      },
      kotlin: {
        method: 'devices().challenges().phone().verifyOtp',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.devices.challenges.phone.PhoneVerifyOtpParams\nimport com.plumery.api.models.devices.challenges.phone.PhoneVerifyOtpResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: PhoneVerifyOtpParams = PhoneVerifyOtpParams.builder()\n        .id("P")\n        .code("P")\n        .build()\n    val response: PhoneVerifyOtpResponse = client.devices().challenges().phone().verifyOtp(params)\n}',
      },
      go: {
        method: 'client.Devices.Challenges.Phone.VerifyOtp',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tresponse, err := client.Devices.Challenges.Phone.VerifyOtp(\n\t\tcontext.TODO(),\n\t\t"P",\n\t\tplumery.DeviceChallengePhoneVerifyOtpParams{\n\t\t\tCode: plumery.F("P"),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.NextStep)\n}\n',
      },
      cli: {
        method: 'phone verifyOtp',
        example:
          "plumery devices:challenges:phone verify-otp \\\n  --session 'My Session' \\\n  --id P \\\n  --code P",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/devices/$ID/challenges/phone:verify-otp \\\n    -H \'Content-Type: application/json\' \\\n    -H "Cookie: $SESSION" \\\n    -d \'{\n          "code": "P"\n        }\'',
      },
    },
  },
  {
    name: 'configureBiometrics',
    endpoint: '/api/v1/devices/current/challenges:configure-biometrics',
    httpMethod: 'post',
    summary: 'Configure Biometrics For Device',
    description: 'Use this endpoint to enable or disable biometrics authentication for the current device.',
    stainlessPath: '(resource) devices.current.challenges > (method) configureBiometrics',
    qualified: 'client.devices.current.challenges.configureBiometrics',
    params: ['enabled: boolean;', 'publicKey?: string;', 'plmr-user-action?: boolean;'],
    response:
      "{ nextStep: { challenge: string; info?: { status: 'PENDING_CODE' | 'PENDING_SIGNING'; verificationCode?: string; } | { verificationCode: string; } | { dataToSign: string; } | { availableSigningMethods: 'BIOMETRICS' | 'PASSCODE'[]; } | { code?: string; }; }; sessionId?: string; }",
    markdown:
      "## configureBiometrics\n\n`client.devices.current.challenges.configureBiometrics(enabled: boolean, publicKey?: string, plmr-user-action?: boolean): { nextStep: object; sessionId?: string; }`\n\n**post** `/api/v1/devices/current/challenges:configure-biometrics`\n\nUse this endpoint to enable or disable biometrics authentication for the current device.\n\n### Parameters\n\n- `enabled: boolean`\n  Flag indicating whether the biometrics is to be enabled\n\n- `publicKey?: string`\n  A Base64-encoded RSA public key (up to 4096 bytes) generated using SHA-256 hashing. Only required if `enabled` value is `true`.\n\n- `plmr-user-action?: boolean`\n\n### Returns\n\n- `{ nextStep: { challenge: string; info?: { status: 'PENDING_CODE' | 'PENDING_SIGNING'; verificationCode?: string; } | { verificationCode: string; } | { dataToSign: string; } | { availableSigningMethods: 'BIOMETRICS' | 'PASSCODE'[]; } | { code?: string; }; }; sessionId?: string; }`\n\n  - `nextStep: { challenge: string; info?: { status: 'PENDING_CODE' | 'PENDING_SIGNING'; verificationCode?: string; } | { verificationCode: string; } | { dataToSign: string; } | { availableSigningMethods: 'BIOMETRICS' | 'PASSCODE'[]; } | { code?: string; }; }`\n  - `sessionId?: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.devices.current.challenges.configureBiometrics({ enabled: true });\n\nconsole.log(response);\n```",
    perLanguage: {
      typescript: {
        method: 'client.devices.current.challenges.configureBiometrics',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nconst response = await client.devices.current.challenges.configureBiometrics({ enabled: true });\n\nconsole.log(response.nextStep);",
      },
      python: {
        method: 'devices.current.challenges.configure_biometrics',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nresponse = client.devices.current.challenges.configure_biometrics(\n    enabled=True,\n)\nprint(response.next_step)',
      },
      java: {
        method: 'devices().current().challenges().configureBiometrics',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.devices.current.challenges.ChallengeConfigureBiometricsParams;\nimport com.plumery.api.models.devices.current.challenges.ChallengeConfigureBiometricsResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        ChallengeConfigureBiometricsParams params = ChallengeConfigureBiometricsParams.builder()\n            .enabled(true)\n            .build();\n        ChallengeConfigureBiometricsResponse response = client.devices().current().challenges().configureBiometrics(params);\n    }\n}',
      },
      kotlin: {
        method: 'devices().current().challenges().configureBiometrics',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.devices.current.challenges.ChallengeConfigureBiometricsParams\nimport com.plumery.api.models.devices.current.challenges.ChallengeConfigureBiometricsResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: ChallengeConfigureBiometricsParams = ChallengeConfigureBiometricsParams.builder()\n        .enabled(true)\n        .build()\n    val response: ChallengeConfigureBiometricsResponse = client.devices().current().challenges().configureBiometrics(params)\n}',
      },
      go: {
        method: 'client.Devices.Current.Challenges.ConfigureBiometrics',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tresponse, err := client.Devices.Current.Challenges.ConfigureBiometrics(context.TODO(), plumery.DeviceCurrentChallengeConfigureBiometricsParams{\n\t\tEnabled: plumery.F(true),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.NextStep)\n}\n',
      },
      cli: {
        method: 'challenges configureBiometrics',
        example:
          "plumery devices:current:challenges configure-biometrics \\\n  --session 'My Session' \\\n  --enabled",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/devices/current/challenges:configure-biometrics \\\n    -H \'Content-Type: application/json\' \\\n    -H "Cookie: $SESSION" \\\n    -d \'{\n          "enabled": true\n        }\'',
      },
    },
  },
  {
    name: 'configurePasscode',
    endpoint: '/api/v1/devices/current/challenges:configure-passcode',
    httpMethod: 'post',
    summary: 'Configure Passcode For Device',
    description: 'Use this endpoint to enable or disable passcode authentication for the current device.',
    stainlessPath: '(resource) devices.current.challenges > (method) configurePasscode',
    qualified: 'client.devices.current.challenges.configurePasscode',
    params: ['enabled: boolean;', 'publicKey?: string;', 'plmr-user-action?: boolean;'],
    response:
      "{ nextStep: { challenge: string; info?: { status: 'PENDING_CODE' | 'PENDING_SIGNING'; verificationCode?: string; } | { verificationCode: string; } | { dataToSign: string; } | { availableSigningMethods: 'BIOMETRICS' | 'PASSCODE'[]; } | { code?: string; }; }; sessionId?: string; }",
    markdown:
      "## configurePasscode\n\n`client.devices.current.challenges.configurePasscode(enabled: boolean, publicKey?: string, plmr-user-action?: boolean): { nextStep: object; sessionId?: string; }`\n\n**post** `/api/v1/devices/current/challenges:configure-passcode`\n\nUse this endpoint to enable or disable passcode authentication for the current device.\n\n### Parameters\n\n- `enabled: boolean`\n  Flag indicating whether the passcode is to be enabled\n\n- `publicKey?: string`\n  A Base64-encoded RSA public key (up to 4096 bytes) generated using SHA-256 hashing. Only required if `enabled` value is `true`.\n\n- `plmr-user-action?: boolean`\n\n### Returns\n\n- `{ nextStep: { challenge: string; info?: { status: 'PENDING_CODE' | 'PENDING_SIGNING'; verificationCode?: string; } | { verificationCode: string; } | { dataToSign: string; } | { availableSigningMethods: 'BIOMETRICS' | 'PASSCODE'[]; } | { code?: string; }; }; sessionId?: string; }`\n\n  - `nextStep: { challenge: string; info?: { status: 'PENDING_CODE' | 'PENDING_SIGNING'; verificationCode?: string; } | { verificationCode: string; } | { dataToSign: string; } | { availableSigningMethods: 'BIOMETRICS' | 'PASSCODE'[]; } | { code?: string; }; }`\n  - `sessionId?: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.devices.current.challenges.configurePasscode({ enabled: true });\n\nconsole.log(response);\n```",
    perLanguage: {
      typescript: {
        method: 'client.devices.current.challenges.configurePasscode',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nconst response = await client.devices.current.challenges.configurePasscode({ enabled: true });\n\nconsole.log(response.nextStep);",
      },
      python: {
        method: 'devices.current.challenges.configure_passcode',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nresponse = client.devices.current.challenges.configure_passcode(\n    enabled=True,\n)\nprint(response.next_step)',
      },
      java: {
        method: 'devices().current().challenges().configurePasscode',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.devices.current.challenges.ChallengeConfigurePasscodeParams;\nimport com.plumery.api.models.devices.current.challenges.ChallengeConfigurePasscodeResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        ChallengeConfigurePasscodeParams params = ChallengeConfigurePasscodeParams.builder()\n            .enabled(true)\n            .build();\n        ChallengeConfigurePasscodeResponse response = client.devices().current().challenges().configurePasscode(params);\n    }\n}',
      },
      kotlin: {
        method: 'devices().current().challenges().configurePasscode',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.devices.current.challenges.ChallengeConfigurePasscodeParams\nimport com.plumery.api.models.devices.current.challenges.ChallengeConfigurePasscodeResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: ChallengeConfigurePasscodeParams = ChallengeConfigurePasscodeParams.builder()\n        .enabled(true)\n        .build()\n    val response: ChallengeConfigurePasscodeResponse = client.devices().current().challenges().configurePasscode(params)\n}',
      },
      go: {
        method: 'client.Devices.Current.Challenges.ConfigurePasscode',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tresponse, err := client.Devices.Current.Challenges.ConfigurePasscode(context.TODO(), plumery.DeviceCurrentChallengeConfigurePasscodeParams{\n\t\tEnabled: plumery.F(true),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.NextStep)\n}\n',
      },
      cli: {
        method: 'challenges configurePasscode',
        example:
          "plumery devices:current:challenges configure-passcode \\\n  --session 'My Session' \\\n  --enabled",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/devices/current/challenges:configure-passcode \\\n    -H \'Content-Type: application/json\' \\\n    -H "Cookie: $SESSION" \\\n    -d \'{\n          "enabled": true\n        }\'',
      },
    },
  },
  {
    name: 'initiateSigning',
    endpoint: '/api/v1/devices/current/challenges:initiate-signing',
    httpMethod: 'post',
    summary: 'Initiate Device Signing',
    description:
      'Use this endpoint after receiving `InitiateDeviceSigningForMethodConfig` as next step.\n\nInitiates device signing process using publicKey passed previously \n(in `ConfigureBiometricsRequest` or `ConfigurePasscodeRequest`).',
    stainlessPath: '(resource) devices.current.challenges > (method) initiateSigning',
    qualified: 'client.devices.current.challenges.initiateSigning',
    params: ['plmr-user-action?: boolean;'],
    response:
      "{ nextStep: { challenge: string; info?: { status: 'PENDING_CODE' | 'PENDING_SIGNING'; verificationCode?: string; } | { verificationCode: string; } | { dataToSign: string; } | { availableSigningMethods: 'BIOMETRICS' | 'PASSCODE'[]; } | { code?: string; }; }; sessionId?: string; }",
    markdown:
      "## initiateSigning\n\n`client.devices.current.challenges.initiateSigning(plmr-user-action?: boolean): { nextStep: object; sessionId?: string; }`\n\n**post** `/api/v1/devices/current/challenges:initiate-signing`\n\nUse this endpoint after receiving `InitiateDeviceSigningForMethodConfig` as next step.\n\nInitiates device signing process using publicKey passed previously \n(in `ConfigureBiometricsRequest` or `ConfigurePasscodeRequest`).\n\n### Parameters\n\n- `plmr-user-action?: boolean`\n\n### Returns\n\n- `{ nextStep: { challenge: string; info?: { status: 'PENDING_CODE' | 'PENDING_SIGNING'; verificationCode?: string; } | { verificationCode: string; } | { dataToSign: string; } | { availableSigningMethods: 'BIOMETRICS' | 'PASSCODE'[]; } | { code?: string; }; }; sessionId?: string; }`\n\n  - `nextStep: { challenge: string; info?: { status: 'PENDING_CODE' | 'PENDING_SIGNING'; verificationCode?: string; } | { verificationCode: string; } | { dataToSign: string; } | { availableSigningMethods: 'BIOMETRICS' | 'PASSCODE'[]; } | { code?: string; }; }`\n  - `sessionId?: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.devices.current.challenges.initiateSigning();\n\nconsole.log(response);\n```",
    perLanguage: {
      typescript: {
        method: 'client.devices.current.challenges.initiateSigning',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nconst response = await client.devices.current.challenges.initiateSigning();\n\nconsole.log(response.nextStep);",
      },
      python: {
        method: 'devices.current.challenges.initiate_signing',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nresponse = client.devices.current.challenges.initiate_signing()\nprint(response.next_step)',
      },
      java: {
        method: 'devices().current().challenges().initiateSigning',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.devices.current.challenges.ChallengeInitiateSigningParams;\nimport com.plumery.api.models.devices.current.challenges.ChallengeInitiateSigningResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        ChallengeInitiateSigningResponse response = client.devices().current().challenges().initiateSigning();\n    }\n}',
      },
      kotlin: {
        method: 'devices().current().challenges().initiateSigning',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.devices.current.challenges.ChallengeInitiateSigningParams\nimport com.plumery.api.models.devices.current.challenges.ChallengeInitiateSigningResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val response: ChallengeInitiateSigningResponse = client.devices().current().challenges().initiateSigning()\n}',
      },
      go: {
        method: 'client.Devices.Current.Challenges.InitiateSigning',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tresponse, err := client.Devices.Current.Challenges.InitiateSigning(context.TODO(), plumery.DeviceCurrentChallengeInitiateSigningParams{})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.NextStep)\n}\n',
      },
      cli: {
        method: 'challenges initiateSigning',
        example: "plumery devices:current:challenges initiate-signing \\\n  --session 'My Session'",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/devices/current/challenges:initiate-signing \\\n    -X POST \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'sign',
    endpoint: '/api/v1/devices/current/challenges:sign',
    httpMethod: 'post',
    summary: 'Bind Device',
    description:
      'Use this endpoint after receiving `DeviceBindingForMethodConfig` as next step.\n\nBind device by signing it - this will enable the user to seamlessly login from the same device.',
    stainlessPath: '(resource) devices.current.challenges > (method) sign',
    qualified: 'client.devices.current.challenges.sign',
    params: ['signature: string;', 'plmr-user-action?: boolean;'],
    response:
      "{ nextStep: { challenge: string; info?: { status: 'PENDING_CODE' | 'PENDING_SIGNING'; verificationCode?: string; } | { verificationCode: string; } | { dataToSign: string; } | { availableSigningMethods: 'BIOMETRICS' | 'PASSCODE'[]; } | { code?: string; }; }; sessionId?: string; }",
    markdown:
      "## sign\n\n`client.devices.current.challenges.sign(signature: string, plmr-user-action?: boolean): { nextStep: object; sessionId?: string; }`\n\n**post** `/api/v1/devices/current/challenges:sign`\n\nUse this endpoint after receiving `DeviceBindingForMethodConfig` as next step.\n\nBind device by signing it - this will enable the user to seamlessly login from the same device.\n\n### Parameters\n\n- `signature: string`\n  A Base64-encoded RSA signature over Base64-encoded `dataToSign` provided when receiving `DeviceBindingForMethodConfig` as the next step.\nThe signature is generated with the device’s private key using the SHA256withRSA (PKCS#1 v1.5) algorithm. The `dataToSign` is to be Base64-decoded for signing.\n\n\n- `plmr-user-action?: boolean`\n\n### Returns\n\n- `{ nextStep: { challenge: string; info?: { status: 'PENDING_CODE' | 'PENDING_SIGNING'; verificationCode?: string; } | { verificationCode: string; } | { dataToSign: string; } | { availableSigningMethods: 'BIOMETRICS' | 'PASSCODE'[]; } | { code?: string; }; }; sessionId?: string; }`\n\n  - `nextStep: { challenge: string; info?: { status: 'PENDING_CODE' | 'PENDING_SIGNING'; verificationCode?: string; } | { verificationCode: string; } | { dataToSign: string; } | { availableSigningMethods: 'BIOMETRICS' | 'PASSCODE'[]; } | { code?: string; }; }`\n  - `sessionId?: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.devices.current.challenges.sign({ signature: 'signature' });\n\nconsole.log(response);\n```",
    perLanguage: {
      typescript: {
        method: 'client.devices.current.challenges.sign',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nconst response = await client.devices.current.challenges.sign({ signature: 'signature' });\n\nconsole.log(response.nextStep);",
      },
      python: {
        method: 'devices.current.challenges.sign',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nresponse = client.devices.current.challenges.sign(\n    signature="signature",\n)\nprint(response.next_step)',
      },
      java: {
        method: 'devices().current().challenges().sign',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.devices.current.challenges.ChallengeSignParams;\nimport com.plumery.api.models.devices.current.challenges.ChallengeSignResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        ChallengeSignParams params = ChallengeSignParams.builder()\n            .signature("signature")\n            .build();\n        ChallengeSignResponse response = client.devices().current().challenges().sign(params);\n    }\n}',
      },
      kotlin: {
        method: 'devices().current().challenges().sign',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.devices.current.challenges.ChallengeSignParams\nimport com.plumery.api.models.devices.current.challenges.ChallengeSignResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: ChallengeSignParams = ChallengeSignParams.builder()\n        .signature("signature")\n        .build()\n    val response: ChallengeSignResponse = client.devices().current().challenges().sign(params)\n}',
      },
      go: {
        method: 'client.Devices.Current.Challenges.Sign',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tresponse, err := client.Devices.Current.Challenges.Sign(context.TODO(), plumery.DeviceCurrentChallengeSignParams{\n\t\tSignature: plumery.F("signature"),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.NextStep)\n}\n',
      },
      cli: {
        method: 'challenges sign',
        example:
          "plumery devices:current:challenges sign \\\n  --session 'My Session' \\\n  --signature signature",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/devices/current/challenges:sign \\\n    -H \'Content-Type: application/json\' \\\n    -H "Cookie: $SESSION" \\\n    -d \'{\n          "signature": "signature"\n        }\'',
      },
    },
  },
  {
    name: 'confirm',
    endpoint: '/api/v1/devices/current/challenges:confirm',
    httpMethod: 'post',
    summary: 'Confirm Signing Method Configuration',
    description:
      'Use this endpoint after receiving `ConfirmSigningForMethodConfig` as next step.\n\nConfirms operation of device signing method configuration.',
    stainlessPath: '(resource) devices.current.challenges > (method) confirm',
    qualified: 'client.devices.current.challenges.confirm',
    params: ['plmr-user-action?: boolean;'],
    markdown:
      "## confirm\n\n`client.devices.current.challenges.confirm(plmr-user-action?: boolean): void`\n\n**post** `/api/v1/devices/current/challenges:confirm`\n\nUse this endpoint after receiving `ConfirmSigningForMethodConfig` as next step.\n\nConfirms operation of device signing method configuration.\n\n### Parameters\n\n- `plmr-user-action?: boolean`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nawait client.devices.current.challenges.confirm()\n```",
    perLanguage: {
      typescript: {
        method: 'client.devices.current.challenges.confirm',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nawait client.devices.current.challenges.confirm();",
      },
      python: {
        method: 'devices.current.challenges.confirm',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nclient.devices.current.challenges.confirm()',
      },
      java: {
        method: 'devices().current().challenges().confirm',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.devices.current.challenges.ChallengeConfirmParams;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        client.devices().current().challenges().confirm();\n    }\n}',
      },
      kotlin: {
        method: 'devices().current().challenges().confirm',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.devices.current.challenges.ChallengeConfirmParams\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    client.devices().current().challenges().confirm()\n}',
      },
      go: {
        method: 'client.Devices.Current.Challenges.Confirm',
        example:
          'package main\n\nimport (\n\t"context"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\terr := client.Devices.Current.Challenges.Confirm(context.TODO(), plumery.DeviceCurrentChallengeConfirmParams{})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
      },
      cli: {
        method: 'challenges confirm',
        example: "plumery devices:current:challenges confirm \\\n  --session 'My Session'",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/devices/current/challenges:confirm \\\n    -X POST \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'create',
    endpoint: '/api/v1/device-registrations',
    httpMethod: 'post',
    summary: 'Register Device',
    description: 'Initiates the registration of a new device.',
    stainlessPath: '(resource) device-registrations > (method) create',
    qualified: 'client.deviceRegistrations.create',
    params: ['info?: object;'],
    response: '{ deviceId: string; }',
    markdown:
      "## create\n\n`client.deviceRegistrations.create(info?: object): { deviceId: string; }`\n\n**post** `/api/v1/device-registrations`\n\nInitiates the registration of a new device.\n\n### Parameters\n\n- `info?: object`\n  An optional key-value map containing additional information about the device. Each key and value must be a string.\nThe total character length of all keys and values combined must not exceed 4096 characters. This allows for additional\ncontextual data to be sent with the registration request, enhancing the information available for the registration process.\n\n\n### Returns\n\n- `{ deviceId: string; }`\n\n  - `deviceId: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst deviceRegistration = await client.deviceRegistrations.create();\n\nconsole.log(deviceRegistration);\n```",
    perLanguage: {
      typescript: {
        method: 'client.deviceRegistrations.create',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst deviceRegistration = await client.deviceRegistrations.create();\n\nconsole.log(deviceRegistration.deviceId);",
      },
      python: {
        method: 'device_registrations.create',
        example:
          'from plumery import Plumery\n\nclient = Plumery()\ndevice_registration = client.device_registrations.create()\nprint(device_registration.device_id)',
      },
      java: {
        method: 'deviceRegistrations().create',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.deviceregistrations.DeviceRegistrationCreateParams;\nimport com.plumery.api.models.deviceregistrations.DeviceRegistrationCreateResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        DeviceRegistrationCreateResponse deviceRegistration = client.deviceRegistrations().create();\n    }\n}',
      },
      kotlin: {
        method: 'deviceRegistrations().create',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.deviceregistrations.DeviceRegistrationCreateParams\nimport com.plumery.api.models.deviceregistrations.DeviceRegistrationCreateResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val deviceRegistration: DeviceRegistrationCreateResponse = client.deviceRegistrations().create()\n}',
      },
      go: {
        method: 'client.DeviceRegistrations.New',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tdeviceRegistration, err := client.DeviceRegistrations.New(context.TODO(), plumery.DeviceRegistrationNewParams{})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", deviceRegistration.DeviceID)\n}\n',
      },
      cli: {
        method: 'device-registrations create',
        example: "plumery device-registrations create \\\n  --session 'My Session'",
      },
      http: {
        example: 'curl https://api.plumery.com/api/v1/device-registrations \\\n    -X POST',
      },
    },
  },
  {
    name: 'sign',
    endpoint: '/api/v1/device-registrations/{id}/challenges:sign',
    httpMethod: 'post',
    summary: 'Pre-auth Configure Signature',
    description:
      'Completes a pre-auth configure-biometrics/configure-passcode request by submitting the RSA signature that\nproves possession of the newly-uploaded method key (the `DeviceBindingForMethodConfigPreAuth` next step).\n',
    stainlessPath: '(resource) device-registrations.challenges > (method) sign',
    qualified: 'client.deviceRegistrations.challenges.sign',
    params: ['id: string;', 'signature: string;', 'plmr-user-action?: boolean;'],
    response:
      "{ nextStep: { challenge: string; info?: { status: 'PENDING_CODE' | 'PENDING_SIGNING'; verificationCode?: string; } | { verificationCode: string; } | { dataToSign: string; } | { availableSigningMethods: 'BIOMETRICS' | 'PASSCODE'[]; } | { code?: string; }; }; sessionId?: string; }",
    markdown:
      "## sign\n\n`client.deviceRegistrations.challenges.sign(id: string, signature: string, plmr-user-action?: boolean): { nextStep: object; sessionId?: string; }`\n\n**post** `/api/v1/device-registrations/{id}/challenges:sign`\n\nCompletes a pre-auth configure-biometrics/configure-passcode request by submitting the RSA signature that\nproves possession of the newly-uploaded method key (the `DeviceBindingForMethodConfigPreAuth` next step).\n\n\n### Parameters\n\n- `id: string`\n\n- `signature: string`\n\n- `plmr-user-action?: boolean`\n\n### Returns\n\n- `{ nextStep: { challenge: string; info?: { status: 'PENDING_CODE' | 'PENDING_SIGNING'; verificationCode?: string; } | { verificationCode: string; } | { dataToSign: string; } | { availableSigningMethods: 'BIOMETRICS' | 'PASSCODE'[]; } | { code?: string; }; }; sessionId?: string; }`\n\n  - `nextStep: { challenge: string; info?: { status: 'PENDING_CODE' | 'PENDING_SIGNING'; verificationCode?: string; } | { verificationCode: string; } | { dataToSign: string; } | { availableSigningMethods: 'BIOMETRICS' | 'PASSCODE'[]; } | { code?: string; }; }`\n  - `sessionId?: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.deviceRegistrations.challenges.sign('P', { signature: 'P' });\n\nconsole.log(response);\n```",
    perLanguage: {
      typescript: {
        method: 'client.deviceRegistrations.challenges.sign',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.deviceRegistrations.challenges.sign('P', { signature: 'P' });\n\nconsole.log(response.nextStep);",
      },
      python: {
        method: 'device_registrations.challenges.sign',
        example:
          'from plumery import Plumery\n\nclient = Plumery()\nresponse = client.device_registrations.challenges.sign(\n    id="P",\n    signature="P",\n)\nprint(response.next_step)',
      },
      java: {
        method: 'deviceRegistrations().challenges().sign',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.deviceregistrations.challenges.ChallengeSignParams;\nimport com.plumery.api.models.deviceregistrations.challenges.ChallengeSignResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        ChallengeSignParams params = ChallengeSignParams.builder()\n            .id("P")\n            .signature("P")\n            .build();\n        ChallengeSignResponse response = client.deviceRegistrations().challenges().sign(params);\n    }\n}',
      },
      kotlin: {
        method: 'deviceRegistrations().challenges().sign',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.deviceregistrations.challenges.ChallengeSignParams\nimport com.plumery.api.models.deviceregistrations.challenges.ChallengeSignResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: ChallengeSignParams = ChallengeSignParams.builder()\n        .id("P")\n        .signature("P")\n        .build()\n    val response: ChallengeSignResponse = client.deviceRegistrations().challenges().sign(params)\n}',
      },
      go: {
        method: 'client.DeviceRegistrations.Challenges.Sign',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tresponse, err := client.DeviceRegistrations.Challenges.Sign(\n\t\tcontext.TODO(),\n\t\t"P",\n\t\tplumery.DeviceRegistrationChallengeSignParams{\n\t\t\tSignature: plumery.F("P"),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.NextStep)\n}\n',
      },
      cli: {
        method: 'challenges sign',
        example:
          "plumery device-registrations:challenges sign \\\n  --session 'My Session' \\\n  --id P \\\n  --signature P",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/device-registrations/$ID/challenges:sign \\\n    -H \'Content-Type: application/json\' \\\n    -d \'{\n          "signature": "P"\n        }\'',
      },
    },
  },
  {
    name: 'configureBiometrics',
    endpoint: '/api/v1/device-registrations/{id}/challenges:configure-biometrics',
    httpMethod: 'post',
    summary: 'Pre-auth Configure Biometrics',
    description:
      'Initiates biometrics configuration for a pre-auth device (not yet linked to a user). Complete it by signing on the `challenges:sign` endpoint.',
    stainlessPath: '(resource) device-registrations.challenges > (method) configureBiometrics',
    qualified: 'client.deviceRegistrations.challenges.configureBiometrics',
    params: ['id: string;', 'publicKey: string;', 'plmr-user-action?: boolean;'],
    response:
      "{ nextStep: { challenge: string; info?: { status: 'PENDING_CODE' | 'PENDING_SIGNING'; verificationCode?: string; } | { verificationCode: string; } | { dataToSign: string; } | { availableSigningMethods: 'BIOMETRICS' | 'PASSCODE'[]; } | { code?: string; }; }; sessionId?: string; }",
    markdown:
      "## configureBiometrics\n\n`client.deviceRegistrations.challenges.configureBiometrics(id: string, publicKey: string, plmr-user-action?: boolean): { nextStep: object; sessionId?: string; }`\n\n**post** `/api/v1/device-registrations/{id}/challenges:configure-biometrics`\n\nInitiates biometrics configuration for a pre-auth device (not yet linked to a user). Complete it by signing on the `challenges:sign` endpoint.\n\n### Parameters\n\n- `id: string`\n\n- `publicKey: string`\n\n- `plmr-user-action?: boolean`\n\n### Returns\n\n- `{ nextStep: { challenge: string; info?: { status: 'PENDING_CODE' | 'PENDING_SIGNING'; verificationCode?: string; } | { verificationCode: string; } | { dataToSign: string; } | { availableSigningMethods: 'BIOMETRICS' | 'PASSCODE'[]; } | { code?: string; }; }; sessionId?: string; }`\n\n  - `nextStep: { challenge: string; info?: { status: 'PENDING_CODE' | 'PENDING_SIGNING'; verificationCode?: string; } | { verificationCode: string; } | { dataToSign: string; } | { availableSigningMethods: 'BIOMETRICS' | 'PASSCODE'[]; } | { code?: string; }; }`\n  - `sessionId?: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.deviceRegistrations.challenges.configureBiometrics('P', { publicKey: 'P' });\n\nconsole.log(response);\n```",
    perLanguage: {
      typescript: {
        method: 'client.deviceRegistrations.challenges.configureBiometrics',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.deviceRegistrations.challenges.configureBiometrics('P', {\n  publicKey: 'P',\n});\n\nconsole.log(response.nextStep);",
      },
      python: {
        method: 'device_registrations.challenges.configure_biometrics',
        example:
          'from plumery import Plumery\n\nclient = Plumery()\nresponse = client.device_registrations.challenges.configure_biometrics(\n    id="P",\n    public_key="P",\n)\nprint(response.next_step)',
      },
      java: {
        method: 'deviceRegistrations().challenges().configureBiometrics',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.deviceregistrations.challenges.ChallengeConfigureBiometricsParams;\nimport com.plumery.api.models.deviceregistrations.challenges.ChallengeConfigureBiometricsResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        ChallengeConfigureBiometricsParams params = ChallengeConfigureBiometricsParams.builder()\n            .id("P")\n            .publicKey("P")\n            .build();\n        ChallengeConfigureBiometricsResponse response = client.deviceRegistrations().challenges().configureBiometrics(params);\n    }\n}',
      },
      kotlin: {
        method: 'deviceRegistrations().challenges().configureBiometrics',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.deviceregistrations.challenges.ChallengeConfigureBiometricsParams\nimport com.plumery.api.models.deviceregistrations.challenges.ChallengeConfigureBiometricsResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: ChallengeConfigureBiometricsParams = ChallengeConfigureBiometricsParams.builder()\n        .id("P")\n        .publicKey("P")\n        .build()\n    val response: ChallengeConfigureBiometricsResponse = client.deviceRegistrations().challenges().configureBiometrics(params)\n}',
      },
      go: {
        method: 'client.DeviceRegistrations.Challenges.ConfigureBiometrics',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tresponse, err := client.DeviceRegistrations.Challenges.ConfigureBiometrics(\n\t\tcontext.TODO(),\n\t\t"P",\n\t\tplumery.DeviceRegistrationChallengeConfigureBiometricsParams{\n\t\t\tPublicKey: plumery.F("P"),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.NextStep)\n}\n',
      },
      cli: {
        method: 'challenges configureBiometrics',
        example:
          "plumery device-registrations:challenges configure-biometrics \\\n  --session 'My Session' \\\n  --id P \\\n  --public-key P",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/device-registrations/$ID/challenges:configure-biometrics \\\n    -H \'Content-Type: application/json\' \\\n    -d \'{\n          "publicKey": "P"\n        }\'',
      },
    },
  },
  {
    name: 'configurePasscode',
    endpoint: '/api/v1/device-registrations/{id}/challenges:configure-passcode',
    httpMethod: 'post',
    summary: 'Pre-auth Configure Passcode',
    description:
      'Initiates passcode configuration for a pre-auth device (not yet linked to a user). Complete it by signing on the `challenges:sign` endpoint.',
    stainlessPath: '(resource) device-registrations.challenges > (method) configurePasscode',
    qualified: 'client.deviceRegistrations.challenges.configurePasscode',
    params: ['id: string;', 'publicKey: string;', 'plmr-user-action?: boolean;'],
    response:
      "{ nextStep: { challenge: string; info?: { status: 'PENDING_CODE' | 'PENDING_SIGNING'; verificationCode?: string; } | { verificationCode: string; } | { dataToSign: string; } | { availableSigningMethods: 'BIOMETRICS' | 'PASSCODE'[]; } | { code?: string; }; }; sessionId?: string; }",
    markdown:
      "## configurePasscode\n\n`client.deviceRegistrations.challenges.configurePasscode(id: string, publicKey: string, plmr-user-action?: boolean): { nextStep: object; sessionId?: string; }`\n\n**post** `/api/v1/device-registrations/{id}/challenges:configure-passcode`\n\nInitiates passcode configuration for a pre-auth device (not yet linked to a user). Complete it by signing on the `challenges:sign` endpoint.\n\n### Parameters\n\n- `id: string`\n\n- `publicKey: string`\n\n- `plmr-user-action?: boolean`\n\n### Returns\n\n- `{ nextStep: { challenge: string; info?: { status: 'PENDING_CODE' | 'PENDING_SIGNING'; verificationCode?: string; } | { verificationCode: string; } | { dataToSign: string; } | { availableSigningMethods: 'BIOMETRICS' | 'PASSCODE'[]; } | { code?: string; }; }; sessionId?: string; }`\n\n  - `nextStep: { challenge: string; info?: { status: 'PENDING_CODE' | 'PENDING_SIGNING'; verificationCode?: string; } | { verificationCode: string; } | { dataToSign: string; } | { availableSigningMethods: 'BIOMETRICS' | 'PASSCODE'[]; } | { code?: string; }; }`\n  - `sessionId?: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.deviceRegistrations.challenges.configurePasscode('P', { publicKey: 'P' });\n\nconsole.log(response);\n```",
    perLanguage: {
      typescript: {
        method: 'client.deviceRegistrations.challenges.configurePasscode',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.deviceRegistrations.challenges.configurePasscode('P', {\n  publicKey: 'P',\n});\n\nconsole.log(response.nextStep);",
      },
      python: {
        method: 'device_registrations.challenges.configure_passcode',
        example:
          'from plumery import Plumery\n\nclient = Plumery()\nresponse = client.device_registrations.challenges.configure_passcode(\n    id="P",\n    public_key="P",\n)\nprint(response.next_step)',
      },
      java: {
        method: 'deviceRegistrations().challenges().configurePasscode',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.deviceregistrations.challenges.ChallengeConfigurePasscodeParams;\nimport com.plumery.api.models.deviceregistrations.challenges.ChallengeConfigurePasscodeResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        ChallengeConfigurePasscodeParams params = ChallengeConfigurePasscodeParams.builder()\n            .id("P")\n            .publicKey("P")\n            .build();\n        ChallengeConfigurePasscodeResponse response = client.deviceRegistrations().challenges().configurePasscode(params);\n    }\n}',
      },
      kotlin: {
        method: 'deviceRegistrations().challenges().configurePasscode',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.deviceregistrations.challenges.ChallengeConfigurePasscodeParams\nimport com.plumery.api.models.deviceregistrations.challenges.ChallengeConfigurePasscodeResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: ChallengeConfigurePasscodeParams = ChallengeConfigurePasscodeParams.builder()\n        .id("P")\n        .publicKey("P")\n        .build()\n    val response: ChallengeConfigurePasscodeResponse = client.deviceRegistrations().challenges().configurePasscode(params)\n}',
      },
      go: {
        method: 'client.DeviceRegistrations.Challenges.ConfigurePasscode',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tresponse, err := client.DeviceRegistrations.Challenges.ConfigurePasscode(\n\t\tcontext.TODO(),\n\t\t"P",\n\t\tplumery.DeviceRegistrationChallengeConfigurePasscodeParams{\n\t\t\tPublicKey: plumery.F("P"),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.NextStep)\n}\n',
      },
      cli: {
        method: 'challenges configurePasscode',
        example:
          "plumery device-registrations:challenges configure-passcode \\\n  --session 'My Session' \\\n  --id P \\\n  --public-key P",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/device-registrations/$ID/challenges:configure-passcode \\\n    -H \'Content-Type: application/json\' \\\n    -d \'{\n          "publicKey": "P"\n        }\'',
      },
    },
  },
  {
    name: 'create',
    endpoint: '/api/v1/originations',
    httpMethod: 'post',
    summary: 'Initiate a new origination',
    description: 'Creates a new origination process of a given type.',
    stainlessPath: '(resource) originations > (method) create',
    qualified: 'client.originations.create',
    params: ['identityVerificationToken: string;', 'type: string;'],
    response: '{ id: string; }',
    markdown:
      "## create\n\n`client.originations.create(identityVerificationToken: string, type: string): { id: string; }`\n\n**post** `/api/v1/originations`\n\nCreates a new origination process of a given type.\n\n### Parameters\n\n- `identityVerificationToken: string`\n  A cryptographic token received after doing user identity verification. It is a cryptographic token based on the provided identifications fields.\n\n- `type: string`\n  The origination type.\n\n### Returns\n\n- `{ id: string; }`\n\n  - `id: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst origination = await client.originations.create({ identityVerificationToken: 'identityVerificationToken', type: 'type' });\n\nconsole.log(origination);\n```",
    perLanguage: {
      typescript: {
        method: 'client.originations.create',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst origination = await client.originations.create({\n  identityVerificationToken: 'identityVerificationToken',\n  type: 'type',\n});\n\nconsole.log(origination.id);",
      },
      python: {
        method: 'originations.create',
        example:
          'from plumery import Plumery\n\nclient = Plumery()\norigination = client.originations.create(\n    identity_verification_token="identityVerificationToken",\n    type="type",\n)\nprint(origination.id)',
      },
      java: {
        method: 'originations().create',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.originations.OriginationCreateParams;\nimport com.plumery.api.models.originations.OriginationCreateResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        OriginationCreateParams params = OriginationCreateParams.builder()\n            .identityVerificationToken("identityVerificationToken")\n            .type("type")\n            .build();\n        OriginationCreateResponse origination = client.originations().create(params);\n    }\n}',
      },
      kotlin: {
        method: 'originations().create',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.originations.OriginationCreateParams\nimport com.plumery.api.models.originations.OriginationCreateResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: OriginationCreateParams = OriginationCreateParams.builder()\n        .identityVerificationToken("identityVerificationToken")\n        .type("type")\n        .build()\n    val origination: OriginationCreateResponse = client.originations().create(params)\n}',
      },
      go: {
        method: 'client.Originations.New',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\torigination, err := client.Originations.New(context.TODO(), plumery.OriginationNewParams{\n\t\tIdentityVerificationToken: plumery.F("identityVerificationToken"),\n\t\tType:                      plumery.F("type"),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", origination.ID)\n}\n',
      },
      cli: {
        method: 'originations create',
        example:
          "plumery originations create \\\n  --session 'My Session' \\\n  --identity-verification-token identityVerificationToken \\\n  --type type",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/originations \\\n    -H \'Content-Type: application/json\' \\\n    -d \'{\n          "identityVerificationToken": "identityVerificationToken",\n          "type": "type"\n        }\'',
      },
    },
  },
  {
    name: 'retrieve',
    endpoint: '/api/v1/originations/{originationId}',
    httpMethod: 'get',
    summary: 'Get origination status',
    description: 'Returns the current state and submitted steps of an origination.',
    stainlessPath: '(resource) originations > (method) retrieve',
    qualified: 'client.originations.retrieve',
    params: ['originationId: string;'],
    response:
      '{ id: string; steps: { payload: string; step: string; }[]; type: string; isCompleted?: boolean; }',
    markdown:
      "## retrieve\n\n`client.originations.retrieve(originationId: string): { id: string; steps: object[]; type: string; isCompleted?: boolean; }`\n\n**get** `/api/v1/originations/{originationId}`\n\nReturns the current state and submitted steps of an origination.\n\n### Parameters\n\n- `originationId: string`\n\n### Returns\n\n- `{ id: string; steps: { payload: string; step: string; }[]; type: string; isCompleted?: boolean; }`\n\n  - `id: string`\n  - `steps: { payload: string; step: string; }[]`\n  - `type: string`\n  - `isCompleted?: boolean`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst origination = await client.originations.retrieve('originationId');\n\nconsole.log(origination);\n```",
    perLanguage: {
      typescript: {
        method: 'client.originations.retrieve',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst origination = await client.originations.retrieve('originationId');\n\nconsole.log(origination.id);",
      },
      python: {
        method: 'originations.retrieve',
        example:
          'from plumery import Plumery\n\nclient = Plumery()\norigination = client.originations.retrieve(\n    "originationId",\n)\nprint(origination.id)',
      },
      java: {
        method: 'originations().retrieve',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.originations.OriginationRetrieveParams;\nimport com.plumery.api.models.originations.OriginationRetrieveResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        OriginationRetrieveResponse origination = client.originations().retrieve("originationId");\n    }\n}',
      },
      kotlin: {
        method: 'originations().retrieve',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.originations.OriginationRetrieveParams\nimport com.plumery.api.models.originations.OriginationRetrieveResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val origination: OriginationRetrieveResponse = client.originations().retrieve("originationId")\n}',
      },
      go: {
        method: 'client.Originations.Get',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\torigination, err := client.Originations.Get(context.TODO(), "originationId")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", origination.ID)\n}\n',
      },
      cli: {
        method: 'originations retrieve',
        example:
          "plumery originations retrieve \\\n  --session 'My Session' \\\n  --origination-id originationId",
      },
      http: {
        example: 'curl https://api.plumery.com/api/v1/originations/$ORIGINATION_ID',
      },
    },
  },
  {
    name: 'delete',
    endpoint: '/api/v1/originations/{originationId}',
    httpMethod: 'delete',
    summary: 'Delete an origination',
    description: 'Deletes an origination by its identifier.',
    stainlessPath: '(resource) originations > (method) delete',
    qualified: 'client.originations.delete',
    params: ['originationId: string;'],
    markdown:
      "## delete\n\n`client.originations.delete(originationId: string): void`\n\n**delete** `/api/v1/originations/{originationId}`\n\nDeletes an origination by its identifier.\n\n### Parameters\n\n- `originationId: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nawait client.originations.delete('originationId')\n```",
    perLanguage: {
      typescript: {
        method: 'client.originations.delete',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery();\n\nawait client.originations.delete('originationId');",
      },
      python: {
        method: 'originations.delete',
        example:
          'from plumery import Plumery\n\nclient = Plumery()\nclient.originations.delete(\n    "originationId",\n)',
      },
      java: {
        method: 'originations().delete',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.originations.OriginationDeleteParams;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        client.originations().delete("originationId");\n    }\n}',
      },
      kotlin: {
        method: 'originations().delete',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.originations.OriginationDeleteParams\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    client.originations().delete("originationId")\n}',
      },
      go: {
        method: 'client.Originations.Delete',
        example:
          'package main\n\nimport (\n\t"context"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\terr := client.Originations.Delete(context.TODO(), "originationId")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
      },
      cli: {
        method: 'originations delete',
        example:
          "plumery originations delete \\\n  --session 'My Session' \\\n  --origination-id originationId",
      },
      http: {
        example: 'curl https://api.plumery.com/api/v1/originations/$ORIGINATION_ID \\\n    -X DELETE',
      },
    },
  },
  {
    name: 'create',
    endpoint: '/api/v1/originations/{originationId}/steps/{step}',
    httpMethod: 'post',
    summary: 'Submit a step payload for an origination',
    description: 'Submits data for a specific origination step.',
    stainlessPath: '(resource) originations.steps > (method) create',
    qualified: 'client.originations.steps.create',
    params: [
      'originationId: string;',
      'step: string;',
      'isFinalStep?: boolean;',
      'payload?: string;',
      'verifiedPayload?: string;',
    ],
    markdown:
      "## create\n\n`client.originations.steps.create(originationId: string, step: string, isFinalStep?: boolean, payload?: string, verifiedPayload?: string): void`\n\n**post** `/api/v1/originations/{originationId}/steps/{step}`\n\nSubmits data for a specific origination step.\n\n### Parameters\n\n- `originationId: string`\n\n- `step: string`\n\n- `isFinalStep?: boolean`\n  Indicates if this is the final step.\n\n- `payload?: string`\n  The `payload` and `verifiedPayload` fields are mutually exclusive; only one field may be populated.\n\n- `verifiedPayload?: string`\n  The `payload` and `verifiedPayload` fields are mutually exclusive; only one field may be populated. If the verification fails, the step will be rejected with a 400 Bad Request error\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nawait client.originations.steps.create('step', { originationId: 'originationId' })\n```",
    perLanguage: {
      typescript: {
        method: 'client.originations.steps.create',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery();\n\nawait client.originations.steps.create('step', { originationId: 'originationId' });",
      },
      python: {
        method: 'originations.steps.create',
        example:
          'from plumery import Plumery\n\nclient = Plumery()\nclient.originations.steps.create(\n    step="step",\n    origination_id="originationId",\n)',
      },
      java: {
        method: 'originations().steps().create',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.originations.steps.StepCreateParams;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        StepCreateParams params = StepCreateParams.builder()\n            .originationId("originationId")\n            .step("step")\n            .build();\n        client.originations().steps().create(params);\n    }\n}',
      },
      kotlin: {
        method: 'originations().steps().create',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.originations.steps.StepCreateParams\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: StepCreateParams = StepCreateParams.builder()\n        .originationId("originationId")\n        .step("step")\n        .build()\n    client.originations().steps().create(params)\n}',
      },
      go: {
        method: 'client.Originations.Steps.New',
        example:
          'package main\n\nimport (\n\t"context"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\terr := client.Originations.Steps.New(\n\t\tcontext.TODO(),\n\t\t"originationId",\n\t\t"step",\n\t\tplumery.OriginationStepNewParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
      },
      cli: {
        method: 'steps create',
        example:
          "plumery originations:steps create \\\n  --session 'My Session' \\\n  --origination-id originationId \\\n  --step step",
      },
      http: {
        example:
          "curl https://api.plumery.com/api/v1/originations/$ORIGINATION_ID/steps/$STEP \\\n    -H 'Content-Type: application/json' \\\n    -d '{}'",
      },
    },
  },
  {
    name: 'retrieve',
    endpoint: '/api/v1/properties/{propertyName}',
    httpMethod: 'get',
    summary: 'Get property value',
    description: 'Retrieve the value of a property based on its name.',
    stainlessPath: '(resource) properties > (method) retrieve',
    qualified: 'client.properties.retrieve',
    params: ['propertyName: string;', 'X-Request-ID?: string;'],
    response: 'string',
    markdown:
      "## retrieve\n\n`client.properties.retrieve(propertyName: string, X-Request-ID?: string): string`\n\n**get** `/api/v1/properties/{propertyName}`\n\nRetrieve the value of a property based on its name.\n\n### Parameters\n\n- `propertyName: string`\n\n- `X-Request-ID?: string`\n\n### Returns\n\n- `string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst property = await client.properties.retrieve('36a22460-ebc8-4ffe-a213-1683c5a420c5');\n\nconsole.log(property);\n```",
    perLanguage: {
      typescript: {
        method: 'client.properties.retrieve',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst property = await client.properties.retrieve('36a22460-ebc8-4ffe-a213-1683c5a420c5');\n\nconsole.log(property);",
      },
      python: {
        method: 'properties.retrieve',
        example:
          'from plumery import Plumery\n\nclient = Plumery()\nproperty = client.properties.retrieve(\n    property_name="36a22460-ebc8-4ffe-a213-1683c5a420c5",\n)\nprint(property)',
      },
      java: {
        method: 'properties().retrieve',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.properties.PropertyRetrieveParams;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        String property = client.properties().retrieve("36a22460-ebc8-4ffe-a213-1683c5a420c5");\n    }\n}',
      },
      kotlin: {
        method: 'properties().retrieve',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.properties.PropertyRetrieveParams\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val property: String = client.properties().retrieve("36a22460-ebc8-4ffe-a213-1683c5a420c5")\n}',
      },
      go: {
        method: 'client.Properties.Get',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tproperty, err := client.Properties.Get(\n\t\tcontext.TODO(),\n\t\t"36a22460-ebc8-4ffe-a213-1683c5a420c5",\n\t\tplumery.PropertyGetParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", property)\n}\n',
      },
      cli: {
        method: 'properties retrieve',
        example:
          "plumery properties retrieve \\\n  --session 'My Session' \\\n  --property-name 36a22460-ebc8-4ffe-a213-1683c5a420c5",
      },
      http: {
        example: 'curl https://api.plumery.com/api/v1/properties/$PROPERTY_NAME',
      },
    },
  },
  {
    name: 'create',
    endpoint: '/api/v1/properties/{propertyName}',
    httpMethod: 'post',
    summary: 'Update property value',
    description: 'Update a property based on its name.',
    stainlessPath: '(resource) properties > (method) create',
    qualified: 'client.properties.create',
    params: ['propertyName: string;', 'body?: string;', 'X-Request-ID?: string;'],
    markdown:
      "## create\n\n`client.properties.create(propertyName: string, body?: string, X-Request-ID?: string): void`\n\n**post** `/api/v1/properties/{propertyName}`\n\nUpdate a property based on its name.\n\n### Parameters\n\n- `propertyName: string`\n\n- `body?: string`\n  The value of property in string/text format. <br/>\nAny possible type represented in string, it can cover integers, booleans and complex types as JSON strings.\n\n\n- `X-Request-ID?: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nawait client.properties.create('36a22460-ebc8-4ffe-a213-1683c5a420c5')\n```",
    perLanguage: {
      typescript: {
        method: 'client.properties.create',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery();\n\nawait client.properties.create('36a22460-ebc8-4ffe-a213-1683c5a420c5');",
      },
      python: {
        method: 'properties.create',
        example:
          'from plumery import Plumery\n\nclient = Plumery()\nclient.properties.create(\n    property_name="36a22460-ebc8-4ffe-a213-1683c5a420c5",\n)',
      },
      java: {
        method: 'properties().create',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.properties.PropertyCreateParams;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        client.properties().create("36a22460-ebc8-4ffe-a213-1683c5a420c5");\n    }\n}',
      },
      kotlin: {
        method: 'properties().create',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.properties.PropertyCreateParams\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    client.properties().create("36a22460-ebc8-4ffe-a213-1683c5a420c5")\n}',
      },
      go: {
        method: 'client.Properties.New',
        example:
          'package main\n\nimport (\n\t"context"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\terr := client.Properties.New(\n\t\tcontext.TODO(),\n\t\t"36a22460-ebc8-4ffe-a213-1683c5a420c5",\n\t\tplumery.PropertyNewParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
      },
      cli: {
        method: 'properties create',
        example:
          "plumery properties create \\\n  --session 'My Session' \\\n  --property-name 36a22460-ebc8-4ffe-a213-1683c5a420c5",
      },
      http: {
        example: 'curl https://api.plumery.com/api/v1/properties/$PROPERTY_NAME \\\n    -X POST',
      },
    },
  },
  {
    name: 'create',
    endpoint: '/api/v1/identity-verifications',
    httpMethod: 'post',
    summary: 'Initiate identity verification',
    description: 'Initiate a new identity verification for the user.',
    stainlessPath: '(resource) identity-verifications > (method) create',
    qualified: 'client.identityVerifications.create',
    params: [
      "body: { method: 'MOBILE_ID'; personalId: string; phoneNumber: string; } | { country: string; method: 'SMART_ID'; personalId: string; } | { attributes: object; method: string; };",
      'accept-language?: string;',
      'X-Request-ID?: string;',
    ],
    response: '{ id: string; code: string; }',
    perLanguage: {
      typescript: {
        method: 'client.identityVerifications.create',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst identityVerification = await client.identityVerifications.create({\n  method: 'MOBILE_ID',\n  personalId: '49001010001',\n  phoneNumber: '+37069584868',\n});\n\nconsole.log(identityVerification.id);",
      },
      python: {
        method: 'identity_verifications.create',
        example:
          'from plumery import Plumery\n\nclient = Plumery()\nidentity_verification = client.identity_verifications.create(\n    method="MOBILE_ID",\n    personal_id="49001010001",\n    phone_number="+37069584868",\n)\nprint(identity_verification.id)',
      },
      java: {
        method: 'identityVerifications().create',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.identityverifications.IdentityVerificationCreateParams;\nimport com.plumery.api.models.identityverifications.IdentityVerificationCreateResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        IdentityVerificationCreateParams.Body.MobileId params = IdentityVerificationCreateParams.Body.MobileId.builder()\n            .personalId("49001010001")\n            .phoneNumber("+37069584868")\n            .build();\n        IdentityVerificationCreateResponse identityVerification = client.identityVerifications().create(params);\n    }\n}',
      },
      kotlin: {
        method: 'identityVerifications().create',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.identityverifications.IdentityVerificationCreateParams\nimport com.plumery.api.models.identityverifications.IdentityVerificationCreateResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: IdentityVerificationCreateParams.Body.MobileId = IdentityVerificationCreateParams.Body.MobileId.builder()\n        .personalId("49001010001")\n        .phoneNumber("+37069584868")\n        .build()\n    val identityVerification: IdentityVerificationCreateResponse = client.identityVerifications().create(params)\n}',
      },
      go: {
        method: 'client.IdentityVerifications.New',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tidentityVerification, err := client.IdentityVerifications.New(context.TODO(), plumery.IdentityVerificationNewParams{\n\t\tBody: plumery.IdentityVerificationNewParamsBodyUserEnrolmentSkIDMobileIDAuthenticationRequest{\n\t\t\tMethod:      plumery.F(plumery.IdentityVerificationNewParamsBodyUserEnrolmentSkIDMobileIDAuthenticationRequestMethodMobileID),\n\t\t\tPersonalID:  plumery.F("49001010001"),\n\t\t\tPhoneNumber: plumery.F("+37069584868"),\n\t\t},\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", identityVerification.ID)\n}\n',
      },
      cli: {
        method: 'identity-verifications create',
        example:
          "plumery identity-verifications create \\\n  --session 'My Session' \\\n  --method MOBILE_ID \\\n  --personal-id 49001010001 \\\n  --phone-number +37069584868 \\\n  --country LT \\\n  --attributes '{vendorFlow: bar, sessionHints: bar, phoneNumber: bar, emailAddress: bar}'",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/identity-verifications \\\n    -H \'Content-Type: application/json\' \\\n    -d \'{\n          "method": "MOBILE_ID",\n          "personalId": "49001010001",\n          "phoneNumber": "+37069584868"\n        }\'',
      },
    },
  },
  {
    name: 'retrieve',
    endpoint: '/api/v1/identity-verifications/{id}',
    httpMethod: 'get',
    summary: 'Get identity verification',
    description: 'Get the identity verification result.',
    stainlessPath: '(resource) identity-verifications > (method) retrieve',
    qualified: 'client.identityVerifications.retrieve',
    params: ['id: string;'],
    response: '{ status: string; additionalAttributes?: object; identityVerificationToken?: string; }',
    markdown:
      "## retrieve\n\n`client.identityVerifications.retrieve(id: string): { status: string; additionalAttributes?: object; identityVerificationToken?: string; }`\n\n**get** `/api/v1/identity-verifications/{id}`\n\nGet the identity verification result.\n\n### Parameters\n\n- `id: string`\n\n### Returns\n\n- `{ status: string; additionalAttributes?: object; identityVerificationToken?: string; }`\n\n  - `status: string`\n  - `additionalAttributes?: object`\n  - `identityVerificationToken?: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst identityVerification = await client.identityVerifications.retrieve('id');\n\nconsole.log(identityVerification);\n```",
    perLanguage: {
      typescript: {
        method: 'client.identityVerifications.retrieve',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst identityVerification = await client.identityVerifications.retrieve('id');\n\nconsole.log(identityVerification.identityVerificationToken);",
      },
      python: {
        method: 'identity_verifications.retrieve',
        example:
          'from plumery import Plumery\n\nclient = Plumery()\nidentity_verification = client.identity_verifications.retrieve(\n    "id",\n)\nprint(identity_verification.identity_verification_token)',
      },
      java: {
        method: 'identityVerifications().retrieve',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.identityverifications.IdentityVerificationRetrieveParams;\nimport com.plumery.api.models.identityverifications.IdentityVerificationRetrieveResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        IdentityVerificationRetrieveResponse identityVerification = client.identityVerifications().retrieve("id");\n    }\n}',
      },
      kotlin: {
        method: 'identityVerifications().retrieve',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.identityverifications.IdentityVerificationRetrieveParams\nimport com.plumery.api.models.identityverifications.IdentityVerificationRetrieveResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val identityVerification: IdentityVerificationRetrieveResponse = client.identityVerifications().retrieve("id")\n}',
      },
      go: {
        method: 'client.IdentityVerifications.Get',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tidentityVerification, err := client.IdentityVerifications.Get(context.TODO(), "id")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", identityVerification.IdentityVerificationToken)\n}\n',
      },
      cli: {
        method: 'identity-verifications retrieve',
        example: "plumery identity-verifications retrieve \\\n  --session 'My Session' \\\n  --id id",
      },
      http: {
        example: 'curl https://api.plumery.com/api/v1/identity-verifications/$ID',
      },
    },
  },
  {
    name: 'initiateV1',
    endpoint: '/api/v1/verifications/totp-sms:initiate',
    httpMethod: 'post',
    summary: 'Initiate SMS Verification',
    description: 'Initiate a TOTP SMS verification challenge for the provided phone number.',
    stainlessPath: '(resource) verifications.totp-sms > (method) initiateV1',
    qualified: 'client.verifications.totpSMS.initiateV1',
    params: ['phoneNumber: string;', 'accept-language?: string;', 'X-Request-ID?: string;'],
    response:
      "{ challengeId: string; endpoint: '/api/v1/verifications/totp-sms/{challengeId}:verify'; method: 'TOTP-SMS'; }",
    markdown:
      "## initiateV1\n\n`client.verifications.totpSMS.initiateV1(phoneNumber: string, accept-language?: string, X-Request-ID?: string): { challengeId: string; endpoint: '/api/v1/verifications/totp-sms/{challengeId}:verify'; method: 'TOTP-SMS'; }`\n\n**post** `/api/v1/verifications/totp-sms:initiate`\n\nInitiate a TOTP SMS verification challenge for the provided phone number.\n\n### Parameters\n\n- `phoneNumber: string`\n\n- `accept-language?: string`\n\n- `X-Request-ID?: string`\n\n### Returns\n\n- `{ challengeId: string; endpoint: '/api/v1/verifications/totp-sms/{challengeId}:verify'; method: 'TOTP-SMS'; }`\n\n  - `challengeId: string`\n  - `endpoint: '/api/v1/verifications/totp-sms/{challengeId}:verify'`\n  - `method: 'TOTP-SMS'`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.verifications.totpSMS.initiateV1({ phoneNumber: '+37069584868' });\n\nconsole.log(response);\n```",
    perLanguage: {
      typescript: {
        method: 'client.verifications.totpSMS.initiateV1',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.verifications.totpSMS.initiateV1({ phoneNumber: '+37069584868' });\n\nconsole.log(response.challengeId);",
      },
      python: {
        method: 'verifications.totp_sms.initiate_v1',
        example:
          'from plumery import Plumery\n\nclient = Plumery()\nresponse = client.verifications.totp_sms.initiate_v1(\n    phone_number="+37069584868",\n)\nprint(response.challenge_id)',
      },
      java: {
        method: 'verifications().totpSms().initiateV1',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.verifications.totpsms.TotpSmsInitiateV1Params;\nimport com.plumery.api.models.verifications.totpsms.TotpSmsInitiateV1Response;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        TotpSmsInitiateV1Params params = TotpSmsInitiateV1Params.builder()\n            .phoneNumber("+37069584868")\n            .build();\n        TotpSmsInitiateV1Response response = client.verifications().totpSms().initiateV1(params);\n    }\n}',
      },
      kotlin: {
        method: 'verifications().totpSms().initiateV1',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.verifications.totpsms.TotpSmsInitiateV1Params\nimport com.plumery.api.models.verifications.totpsms.TotpSmsInitiateV1Response\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: TotpSmsInitiateV1Params = TotpSmsInitiateV1Params.builder()\n        .phoneNumber("+37069584868")\n        .build()\n    val response: TotpSmsInitiateV1Response = client.verifications().totpSms().initiateV1(params)\n}',
      },
      go: {
        method: 'client.Verifications.TotpSMS.InitiateV1',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tresponse, err := client.Verifications.TotpSMS.InitiateV1(context.TODO(), plumery.VerificationTotpSMSInitiateV1Params{\n\t\tPhoneNumber: plumery.F("+37069584868"),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.ChallengeID)\n}\n',
      },
      cli: {
        method: 'totp-sms initiateV1',
        example:
          "plumery verifications:totp-sms initiate-v1 \\\n  --session 'My Session' \\\n  --phone-number +37069584868",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/verifications/totp-sms:initiate \\\n    -H \'Content-Type: application/json\' \\\n    -d \'{\n          "phoneNumber": "+37069584868"\n        }\'',
      },
    },
  },
  {
    name: 'initiateV2',
    endpoint: '/api/v2/verifications/totp-sms:initiate',
    httpMethod: 'post',
    summary: 'Initiate SMS Verification (v2)',
    description: 'Initiate a TOTP SMS verification challenge for the provided phone number.',
    stainlessPath: '(resource) verifications.totp-sms > (method) initiateV2',
    qualified: 'client.verifications.totpSMS.initiateV2',
    params: ['phoneNumber: string;', 'accept-language?: string;', 'X-Request-ID?: string;'],
    response:
      "{ challengeId: string; endpoint: '/api/v1/verifications/totp-sms/{challengeId}:verify'; method: 'TOTP-SMS'; }",
    markdown:
      "## initiateV2\n\n`client.verifications.totpSMS.initiateV2(phoneNumber: string, accept-language?: string, X-Request-ID?: string): { challengeId: string; endpoint: '/api/v1/verifications/totp-sms/{challengeId}:verify'; method: 'TOTP-SMS'; }`\n\n**post** `/api/v2/verifications/totp-sms:initiate`\n\nInitiate a TOTP SMS verification challenge for the provided phone number.\n\n### Parameters\n\n- `phoneNumber: string`\n\n- `accept-language?: string`\n\n- `X-Request-ID?: string`\n\n### Returns\n\n- `{ challengeId: string; endpoint: '/api/v1/verifications/totp-sms/{challengeId}:verify'; method: 'TOTP-SMS'; }`\n\n  - `challengeId: string`\n  - `endpoint: '/api/v1/verifications/totp-sms/{challengeId}:verify'`\n  - `method: 'TOTP-SMS'`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.verifications.totpSMS.initiateV2({ phoneNumber: '+37069584868' });\n\nconsole.log(response);\n```",
    perLanguage: {
      typescript: {
        method: 'client.verifications.totpSMS.initiateV2',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.verifications.totpSMS.initiateV2({ phoneNumber: '+37069584868' });\n\nconsole.log(response.challengeId);",
      },
      python: {
        method: 'verifications.totp_sms.initiate_v2',
        example:
          'from plumery import Plumery\n\nclient = Plumery()\nresponse = client.verifications.totp_sms.initiate_v2(\n    phone_number="+37069584868",\n)\nprint(response.challenge_id)',
      },
      java: {
        method: 'verifications().totpSms().initiateV2',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.verifications.totpsms.TotpSmsInitiateV2Params;\nimport com.plumery.api.models.verifications.totpsms.TotpSmsInitiateV2Response;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        TotpSmsInitiateV2Params params = TotpSmsInitiateV2Params.builder()\n            .phoneNumber("+37069584868")\n            .build();\n        TotpSmsInitiateV2Response response = client.verifications().totpSms().initiateV2(params);\n    }\n}',
      },
      kotlin: {
        method: 'verifications().totpSms().initiateV2',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.verifications.totpsms.TotpSmsInitiateV2Params\nimport com.plumery.api.models.verifications.totpsms.TotpSmsInitiateV2Response\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: TotpSmsInitiateV2Params = TotpSmsInitiateV2Params.builder()\n        .phoneNumber("+37069584868")\n        .build()\n    val response: TotpSmsInitiateV2Response = client.verifications().totpSms().initiateV2(params)\n}',
      },
      go: {
        method: 'client.Verifications.TotpSMS.InitiateV2',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tresponse, err := client.Verifications.TotpSMS.InitiateV2(context.TODO(), plumery.VerificationTotpSMSInitiateV2Params{\n\t\tPhoneNumber: plumery.F("+37069584868"),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.ChallengeID)\n}\n',
      },
      cli: {
        method: 'totp-sms initiateV2',
        example:
          "plumery verifications:totp-sms initiate-v2 \\\n  --session 'My Session' \\\n  --phone-number +37069584868",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v2/verifications/totp-sms:initiate \\\n    -H \'Content-Type: application/json\' \\\n    -d \'{\n          "phoneNumber": "+37069584868"\n        }\'',
      },
    },
  },
  {
    name: 'initiate',
    endpoint: '/api/v2/verifications/totp-sms:initiate',
    httpMethod: 'post',
    summary: 'Initiate SMS Verification (v2)',
    description: 'Initiate a TOTP SMS verification challenge for the provided phone number.',
    stainlessPath: '(resource) verifications.totp-sms > (method) initiate',
    qualified: 'client.verifications.totpSMS.initiate',
    perLanguage: {
      typescript: {
        method: 'client.verifications.totpSMS.initiate',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.verifications.totpSMS.initiate({ phoneNumber: '+37069584868' });\n\nconsole.log(response.challengeId);",
      },
      python: {
        method: 'verifications.totp_sms.initiate',
        example:
          'from plumery import Plumery\n\nclient = Plumery()\nresponse = client.verifications.totp_sms.initiate(\n    phone_number="+37069584868",\n)\nprint(response.challenge_id)',
      },
      java: {
        method: 'verifications().totpSms().initiate',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.verifications.totpsms.TotpSmsInitiateParams;\nimport com.plumery.api.models.verifications.totpsms.TotpSmsInitiateResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        TotpSmsInitiateParams params = TotpSmsInitiateParams.builder()\n            .phoneNumber("+37069584868")\n            .build();\n        TotpSmsInitiateResponse response = client.verifications().totpSms().initiate(params);\n    }\n}',
      },
      kotlin: {
        method: 'verifications().totpSms().initiate',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.verifications.totpsms.TotpSmsInitiateParams\nimport com.plumery.api.models.verifications.totpsms.TotpSmsInitiateResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: TotpSmsInitiateParams = TotpSmsInitiateParams.builder()\n        .phoneNumber("+37069584868")\n        .build()\n    val response: TotpSmsInitiateResponse = client.verifications().totpSms().initiate(params)\n}',
      },
      go: {
        method: 'client.Verifications.TotpSMS.Initiate',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tresponse, err := client.Verifications.TotpSMS.Initiate(context.TODO(), plumery.VerificationTotpSMSInitiateParams{\n\t\tPhoneNumber: plumery.F("+37069584868"),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.ChallengeID)\n}\n',
      },
      cli: {
        method: 'totp-sms initiate',
        example:
          "plumery verifications:totp-sms initiate \\\n  --session 'My Session' \\\n  --phone-number +37069584868",
      },
    },
  },
  {
    name: 'verifyV1',
    endpoint: '/api/v1/verifications/totp-sms/{challengeId}:verify',
    httpMethod: 'post',
    summary: 'Verify SMS OTP',
    description: 'Verify SMS TOTP code for an existing challenge.',
    stainlessPath: '(resource) verifications.totp-sms > (method) verifyV1',
    qualified: 'client.verifications.totpSMS.verifyV1',
    params: ['challengeId: string;', 'otp: string;', 'X-Request-ID?: string;'],
    response: '{ token: string; }',
    markdown:
      "## verifyV1\n\n`client.verifications.totpSMS.verifyV1(challengeId: string, otp: string, X-Request-ID?: string): { token: string; }`\n\n**post** `/api/v1/verifications/totp-sms/{challengeId}:verify`\n\nVerify SMS TOTP code for an existing challenge.\n\n### Parameters\n\n- `challengeId: string`\n\n- `otp: string`\n  The One-Time Password (OTP) sent to the user\n\n- `X-Request-ID?: string`\n\n### Returns\n\n- `{ token: string; }`\n\n  - `token: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.verifications.totpSMS.verifyV1('36a22460-ebc8-4ffe-a213-1683c5a420c5', { otp: '123456' });\n\nconsole.log(response);\n```",
    perLanguage: {
      typescript: {
        method: 'client.verifications.totpSMS.verifyV1',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.verifications.totpSMS.verifyV1(\n  '36a22460-ebc8-4ffe-a213-1683c5a420c5',\n  { otp: '123456' },\n);\n\nconsole.log(response.token);",
      },
      python: {
        method: 'verifications.totp_sms.verify_v1',
        example:
          'from plumery import Plumery\n\nclient = Plumery()\nresponse = client.verifications.totp_sms.verify_v1(\n    challenge_id="36a22460-ebc8-4ffe-a213-1683c5a420c5",\n    otp="123456",\n)\nprint(response.token)',
      },
      java: {
        method: 'verifications().totpSms().verifyV1',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.verifications.totpsms.TotpSmsVerifyV1Params;\nimport com.plumery.api.models.verifications.totpsms.TotpSmsVerifyV1Response;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        TotpSmsVerifyV1Params params = TotpSmsVerifyV1Params.builder()\n            .challengeId("36a22460-ebc8-4ffe-a213-1683c5a420c5")\n            .otp("123456")\n            .build();\n        TotpSmsVerifyV1Response response = client.verifications().totpSms().verifyV1(params);\n    }\n}',
      },
      kotlin: {
        method: 'verifications().totpSms().verifyV1',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.verifications.totpsms.TotpSmsVerifyV1Params\nimport com.plumery.api.models.verifications.totpsms.TotpSmsVerifyV1Response\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: TotpSmsVerifyV1Params = TotpSmsVerifyV1Params.builder()\n        .challengeId("36a22460-ebc8-4ffe-a213-1683c5a420c5")\n        .otp("123456")\n        .build()\n    val response: TotpSmsVerifyV1Response = client.verifications().totpSms().verifyV1(params)\n}',
      },
      go: {
        method: 'client.Verifications.TotpSMS.VerifyV1',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tresponse, err := client.Verifications.TotpSMS.VerifyV1(\n\t\tcontext.TODO(),\n\t\t"36a22460-ebc8-4ffe-a213-1683c5a420c5",\n\t\tplumery.VerificationTotpSMSVerifyV1Params{\n\t\t\tOtp: plumery.F("123456"),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.Token)\n}\n',
      },
      cli: {
        method: 'totp-sms verifyV1',
        example:
          "plumery verifications:totp-sms verify-v1 \\\n  --session 'My Session' \\\n  --challenge-id 36a22460-ebc8-4ffe-a213-1683c5a420c5 \\\n  --otp 123456",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/verifications/totp-sms/$CHALLENGE_ID:verify \\\n    -H \'Content-Type: application/json\' \\\n    -d \'{\n          "otp": "123456"\n        }\'',
      },
    },
  },
  {
    name: 'verifyV2',
    endpoint: '/api/v2/verifications/totp-sms/{challengeId}:verify',
    httpMethod: 'post',
    summary: 'Verify SMS OTP (v2)',
    description: 'Verify SMS TOTP code for an existing challenge.',
    stainlessPath: '(resource) verifications.totp-sms > (method) verifyV2',
    qualified: 'client.verifications.totpSMS.verifyV2',
    params: ['challengeId: string;', 'otp: string;', 'X-Request-ID?: string;'],
    response: '{ token: string; }',
    markdown:
      "## verifyV2\n\n`client.verifications.totpSMS.verifyV2(challengeId: string, otp: string, X-Request-ID?: string): { token: string; }`\n\n**post** `/api/v2/verifications/totp-sms/{challengeId}:verify`\n\nVerify SMS TOTP code for an existing challenge.\n\n### Parameters\n\n- `challengeId: string`\n\n- `otp: string`\n  The One-Time Password (OTP) sent to the user\n\n- `X-Request-ID?: string`\n\n### Returns\n\n- `{ token: string; }`\n\n  - `token: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.verifications.totpSMS.verifyV2('36a22460-ebc8-4ffe-a213-1683c5a420c5', { otp: '123456' });\n\nconsole.log(response);\n```",
    perLanguage: {
      typescript: {
        method: 'client.verifications.totpSMS.verifyV2',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.verifications.totpSMS.verifyV2(\n  '36a22460-ebc8-4ffe-a213-1683c5a420c5',\n  { otp: '123456' },\n);\n\nconsole.log(response.token);",
      },
      python: {
        method: 'verifications.totp_sms.verify_v2',
        example:
          'from plumery import Plumery\n\nclient = Plumery()\nresponse = client.verifications.totp_sms.verify_v2(\n    challenge_id="36a22460-ebc8-4ffe-a213-1683c5a420c5",\n    otp="123456",\n)\nprint(response.token)',
      },
      java: {
        method: 'verifications().totpSms().verifyV2',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.verifications.totpsms.TotpSmsVerifyV2Params;\nimport com.plumery.api.models.verifications.totpsms.TotpSmsVerifyV2Response;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        TotpSmsVerifyV2Params params = TotpSmsVerifyV2Params.builder()\n            .challengeId("36a22460-ebc8-4ffe-a213-1683c5a420c5")\n            .otp("123456")\n            .build();\n        TotpSmsVerifyV2Response response = client.verifications().totpSms().verifyV2(params);\n    }\n}',
      },
      kotlin: {
        method: 'verifications().totpSms().verifyV2',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.verifications.totpsms.TotpSmsVerifyV2Params\nimport com.plumery.api.models.verifications.totpsms.TotpSmsVerifyV2Response\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: TotpSmsVerifyV2Params = TotpSmsVerifyV2Params.builder()\n        .challengeId("36a22460-ebc8-4ffe-a213-1683c5a420c5")\n        .otp("123456")\n        .build()\n    val response: TotpSmsVerifyV2Response = client.verifications().totpSms().verifyV2(params)\n}',
      },
      go: {
        method: 'client.Verifications.TotpSMS.VerifyV2',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tresponse, err := client.Verifications.TotpSMS.VerifyV2(\n\t\tcontext.TODO(),\n\t\t"36a22460-ebc8-4ffe-a213-1683c5a420c5",\n\t\tplumery.VerificationTotpSMSVerifyV2Params{\n\t\t\tOtp: plumery.F("123456"),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.Token)\n}\n',
      },
      cli: {
        method: 'totp-sms verifyV2',
        example:
          "plumery verifications:totp-sms verify-v2 \\\n  --session 'My Session' \\\n  --challenge-id 36a22460-ebc8-4ffe-a213-1683c5a420c5 \\\n  --otp 123456",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v2/verifications/totp-sms/$CHALLENGE_ID:verify \\\n    -H \'Content-Type: application/json\' \\\n    -d \'{\n          "otp": "123456"\n        }\'',
      },
    },
  },
  {
    name: 'verify',
    endpoint: '/api/v2/verifications/totp-sms/{challengeId}:verify',
    httpMethod: 'post',
    summary: 'Verify SMS OTP (v2)',
    description: 'Verify SMS TOTP code for an existing challenge.',
    stainlessPath: '(resource) verifications.totp-sms > (method) verify',
    qualified: 'client.verifications.totpSMS.verify',
    perLanguage: {
      typescript: {
        method: 'client.verifications.totpSMS.verify',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.verifications.totpSMS.verify('36a22460-ebc8-4ffe-a213-1683c5a420c5', {\n  otp: '123456',\n});\n\nconsole.log(response.token);",
      },
      python: {
        method: 'verifications.totp_sms.verify',
        example:
          'from plumery import Plumery\n\nclient = Plumery()\nresponse = client.verifications.totp_sms.verify(\n    challenge_id="36a22460-ebc8-4ffe-a213-1683c5a420c5",\n    otp="123456",\n)\nprint(response.token)',
      },
      java: {
        method: 'verifications().totpSms().verify',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.verifications.totpsms.TotpSmsVerifyParams;\nimport com.plumery.api.models.verifications.totpsms.TotpSmsVerifyResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        TotpSmsVerifyParams params = TotpSmsVerifyParams.builder()\n            .challengeId("36a22460-ebc8-4ffe-a213-1683c5a420c5")\n            .otp("123456")\n            .build();\n        TotpSmsVerifyResponse response = client.verifications().totpSms().verify(params);\n    }\n}',
      },
      kotlin: {
        method: 'verifications().totpSms().verify',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.verifications.totpsms.TotpSmsVerifyParams\nimport com.plumery.api.models.verifications.totpsms.TotpSmsVerifyResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: TotpSmsVerifyParams = TotpSmsVerifyParams.builder()\n        .challengeId("36a22460-ebc8-4ffe-a213-1683c5a420c5")\n        .otp("123456")\n        .build()\n    val response: TotpSmsVerifyResponse = client.verifications().totpSms().verify(params)\n}',
      },
      go: {
        method: 'client.Verifications.TotpSMS.Verify',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tresponse, err := client.Verifications.TotpSMS.Verify(\n\t\tcontext.TODO(),\n\t\t"36a22460-ebc8-4ffe-a213-1683c5a420c5",\n\t\tplumery.VerificationTotpSMSVerifyParams{\n\t\t\tOtp: plumery.F("123456"),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.Token)\n}\n',
      },
      cli: {
        method: 'totp-sms verify',
        example:
          "plumery verifications:totp-sms verify \\\n  --session 'My Session' \\\n  --challenge-id 36a22460-ebc8-4ffe-a213-1683c5a420c5 \\\n  --otp 123456",
      },
    },
  },
  {
    name: 'initiateV1',
    endpoint: '/api/v1/verifications/totp-email:initiate',
    httpMethod: 'post',
    summary: 'Initiate Email Verification',
    description: 'Initiate a TOTP email verification challenge for the provided email address.',
    stainlessPath: '(resource) verifications.totp-email > (method) initiateV1',
    qualified: 'client.verifications.totpEmail.initiateV1',
    params: ['emailAddress: string;', 'accept-language?: string;', 'X-Request-ID?: string;'],
    response:
      "{ challengeId: string; endpoint: '/api/v1/verifications/totp-email/{challengeId}:verify'; method: 'TOTP-EMAIL'; }",
    markdown:
      "## initiateV1\n\n`client.verifications.totpEmail.initiateV1(emailAddress: string, accept-language?: string, X-Request-ID?: string): { challengeId: string; endpoint: '/api/v1/verifications/totp-email/{challengeId}:verify'; method: 'TOTP-EMAIL'; }`\n\n**post** `/api/v1/verifications/totp-email:initiate`\n\nInitiate a TOTP email verification challenge for the provided email address.\n\n### Parameters\n\n- `emailAddress: string`\n  A valid email address\n\n- `accept-language?: string`\n\n- `X-Request-ID?: string`\n\n### Returns\n\n- `{ challengeId: string; endpoint: '/api/v1/verifications/totp-email/{challengeId}:verify'; method: 'TOTP-EMAIL'; }`\n\n  - `challengeId: string`\n  - `endpoint: '/api/v1/verifications/totp-email/{challengeId}:verify'`\n  - `method: 'TOTP-EMAIL'`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.verifications.totpEmail.initiateV1({ emailAddress: 'user@example.com' });\n\nconsole.log(response);\n```",
    perLanguage: {
      typescript: {
        method: 'client.verifications.totpEmail.initiateV1',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.verifications.totpEmail.initiateV1({\n  emailAddress: 'user@example.com',\n});\n\nconsole.log(response.challengeId);",
      },
      python: {
        method: 'verifications.totp_email.initiate_v1',
        example:
          'from plumery import Plumery\n\nclient = Plumery()\nresponse = client.verifications.totp_email.initiate_v1(\n    email_address="user@example.com",\n)\nprint(response.challenge_id)',
      },
      java: {
        method: 'verifications().totpEmail().initiateV1',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.verifications.totpemail.TotpEmailInitiateV1Params;\nimport com.plumery.api.models.verifications.totpemail.TotpEmailInitiateV1Response;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        TotpEmailInitiateV1Params params = TotpEmailInitiateV1Params.builder()\n            .emailAddress("user@example.com")\n            .build();\n        TotpEmailInitiateV1Response response = client.verifications().totpEmail().initiateV1(params);\n    }\n}',
      },
      kotlin: {
        method: 'verifications().totpEmail().initiateV1',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.verifications.totpemail.TotpEmailInitiateV1Params\nimport com.plumery.api.models.verifications.totpemail.TotpEmailInitiateV1Response\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: TotpEmailInitiateV1Params = TotpEmailInitiateV1Params.builder()\n        .emailAddress("user@example.com")\n        .build()\n    val response: TotpEmailInitiateV1Response = client.verifications().totpEmail().initiateV1(params)\n}',
      },
      go: {
        method: 'client.Verifications.TotpEmail.InitiateV1',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tresponse, err := client.Verifications.TotpEmail.InitiateV1(context.TODO(), plumery.VerificationTotpEmailInitiateV1Params{\n\t\tEmailAddress: plumery.F("user@example.com"),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.ChallengeID)\n}\n',
      },
      cli: {
        method: 'totp-email initiateV1',
        example:
          "plumery verifications:totp-email initiate-v1 \\\n  --session 'My Session' \\\n  --email-address user@example.com",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/verifications/totp-email:initiate \\\n    -H \'Content-Type: application/json\' \\\n    -d \'{\n          "emailAddress": "user@example.com"\n        }\'',
      },
    },
  },
  {
    name: 'initiateV2',
    endpoint: '/api/v2/verifications/totp-email:initiate',
    httpMethod: 'post',
    summary: 'Initiate Email Verification (v2)',
    description: 'Initiate a TOTP email verification challenge for the provided email address.',
    stainlessPath: '(resource) verifications.totp-email > (method) initiateV2',
    qualified: 'client.verifications.totpEmail.initiateV2',
    params: ['emailAddress: string;', 'accept-language?: string;', 'X-Request-ID?: string;'],
    response:
      "{ challengeId: string; endpoint: '/api/v1/verifications/totp-email/{challengeId}:verify'; method: 'TOTP-EMAIL'; }",
    markdown:
      "## initiateV2\n\n`client.verifications.totpEmail.initiateV2(emailAddress: string, accept-language?: string, X-Request-ID?: string): { challengeId: string; endpoint: '/api/v1/verifications/totp-email/{challengeId}:verify'; method: 'TOTP-EMAIL'; }`\n\n**post** `/api/v2/verifications/totp-email:initiate`\n\nInitiate a TOTP email verification challenge for the provided email address.\n\n### Parameters\n\n- `emailAddress: string`\n  A valid email address\n\n- `accept-language?: string`\n\n- `X-Request-ID?: string`\n\n### Returns\n\n- `{ challengeId: string; endpoint: '/api/v1/verifications/totp-email/{challengeId}:verify'; method: 'TOTP-EMAIL'; }`\n\n  - `challengeId: string`\n  - `endpoint: '/api/v1/verifications/totp-email/{challengeId}:verify'`\n  - `method: 'TOTP-EMAIL'`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.verifications.totpEmail.initiateV2({ emailAddress: 'user@example.com' });\n\nconsole.log(response);\n```",
    perLanguage: {
      typescript: {
        method: 'client.verifications.totpEmail.initiateV2',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.verifications.totpEmail.initiateV2({\n  emailAddress: 'user@example.com',\n});\n\nconsole.log(response.challengeId);",
      },
      python: {
        method: 'verifications.totp_email.initiate_v2',
        example:
          'from plumery import Plumery\n\nclient = Plumery()\nresponse = client.verifications.totp_email.initiate_v2(\n    email_address="user@example.com",\n)\nprint(response.challenge_id)',
      },
      java: {
        method: 'verifications().totpEmail().initiateV2',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.verifications.totpemail.TotpEmailInitiateV2Params;\nimport com.plumery.api.models.verifications.totpemail.TotpEmailInitiateV2Response;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        TotpEmailInitiateV2Params params = TotpEmailInitiateV2Params.builder()\n            .emailAddress("user@example.com")\n            .build();\n        TotpEmailInitiateV2Response response = client.verifications().totpEmail().initiateV2(params);\n    }\n}',
      },
      kotlin: {
        method: 'verifications().totpEmail().initiateV2',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.verifications.totpemail.TotpEmailInitiateV2Params\nimport com.plumery.api.models.verifications.totpemail.TotpEmailInitiateV2Response\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: TotpEmailInitiateV2Params = TotpEmailInitiateV2Params.builder()\n        .emailAddress("user@example.com")\n        .build()\n    val response: TotpEmailInitiateV2Response = client.verifications().totpEmail().initiateV2(params)\n}',
      },
      go: {
        method: 'client.Verifications.TotpEmail.InitiateV2',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tresponse, err := client.Verifications.TotpEmail.InitiateV2(context.TODO(), plumery.VerificationTotpEmailInitiateV2Params{\n\t\tEmailAddress: plumery.F("user@example.com"),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.ChallengeID)\n}\n',
      },
      cli: {
        method: 'totp-email initiateV2',
        example:
          "plumery verifications:totp-email initiate-v2 \\\n  --session 'My Session' \\\n  --email-address user@example.com",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v2/verifications/totp-email:initiate \\\n    -H \'Content-Type: application/json\' \\\n    -d \'{\n          "emailAddress": "user@example.com"\n        }\'',
      },
    },
  },
  {
    name: 'initiate',
    endpoint: '/api/v2/verifications/totp-email:initiate',
    httpMethod: 'post',
    summary: 'Initiate Email Verification (v2)',
    description: 'Initiate a TOTP email verification challenge for the provided email address.',
    stainlessPath: '(resource) verifications.totp-email > (method) initiate',
    qualified: 'client.verifications.totpEmail.initiate',
    perLanguage: {
      typescript: {
        method: 'client.verifications.totpEmail.initiate',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.verifications.totpEmail.initiate({\n  emailAddress: 'user@example.com',\n});\n\nconsole.log(response.challengeId);",
      },
      python: {
        method: 'verifications.totp_email.initiate',
        example:
          'from plumery import Plumery\n\nclient = Plumery()\nresponse = client.verifications.totp_email.initiate(\n    email_address="user@example.com",\n)\nprint(response.challenge_id)',
      },
      java: {
        method: 'verifications().totpEmail().initiate',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.verifications.totpemail.TotpEmailInitiateParams;\nimport com.plumery.api.models.verifications.totpemail.TotpEmailInitiateResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        TotpEmailInitiateParams params = TotpEmailInitiateParams.builder()\n            .emailAddress("user@example.com")\n            .build();\n        TotpEmailInitiateResponse response = client.verifications().totpEmail().initiate(params);\n    }\n}',
      },
      kotlin: {
        method: 'verifications().totpEmail().initiate',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.verifications.totpemail.TotpEmailInitiateParams\nimport com.plumery.api.models.verifications.totpemail.TotpEmailInitiateResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: TotpEmailInitiateParams = TotpEmailInitiateParams.builder()\n        .emailAddress("user@example.com")\n        .build()\n    val response: TotpEmailInitiateResponse = client.verifications().totpEmail().initiate(params)\n}',
      },
      go: {
        method: 'client.Verifications.TotpEmail.Initiate',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tresponse, err := client.Verifications.TotpEmail.Initiate(context.TODO(), plumery.VerificationTotpEmailInitiateParams{\n\t\tEmailAddress: plumery.F("user@example.com"),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.ChallengeID)\n}\n',
      },
      cli: {
        method: 'totp-email initiate',
        example:
          "plumery verifications:totp-email initiate \\\n  --session 'My Session' \\\n  --email-address user@example.com",
      },
    },
  },
  {
    name: 'verifyV1',
    endpoint: '/api/v1/verifications/totp-email/{challengeId}:verify',
    httpMethod: 'post',
    summary: 'Verify Email OTP',
    description: 'Verify email TOTP code for an existing challenge.',
    stainlessPath: '(resource) verifications.totp-email > (method) verifyV1',
    qualified: 'client.verifications.totpEmail.verifyV1',
    params: ['challengeId: string;', 'otp: string;', 'X-Request-ID?: string;'],
    response: '{ token: string; }',
    markdown:
      "## verifyV1\n\n`client.verifications.totpEmail.verifyV1(challengeId: string, otp: string, X-Request-ID?: string): { token: string; }`\n\n**post** `/api/v1/verifications/totp-email/{challengeId}:verify`\n\nVerify email TOTP code for an existing challenge.\n\n### Parameters\n\n- `challengeId: string`\n\n- `otp: string`\n  The One-Time Password (OTP) sent to the user\n\n- `X-Request-ID?: string`\n\n### Returns\n\n- `{ token: string; }`\n\n  - `token: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.verifications.totpEmail.verifyV1('36a22460-ebc8-4ffe-a213-1683c5a420c5', { otp: '123456' });\n\nconsole.log(response);\n```",
    perLanguage: {
      typescript: {
        method: 'client.verifications.totpEmail.verifyV1',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.verifications.totpEmail.verifyV1(\n  '36a22460-ebc8-4ffe-a213-1683c5a420c5',\n  { otp: '123456' },\n);\n\nconsole.log(response.token);",
      },
      python: {
        method: 'verifications.totp_email.verify_v1',
        example:
          'from plumery import Plumery\n\nclient = Plumery()\nresponse = client.verifications.totp_email.verify_v1(\n    challenge_id="36a22460-ebc8-4ffe-a213-1683c5a420c5",\n    otp="123456",\n)\nprint(response.token)',
      },
      java: {
        method: 'verifications().totpEmail().verifyV1',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.verifications.totpemail.TotpEmailVerifyV1Params;\nimport com.plumery.api.models.verifications.totpemail.TotpEmailVerifyV1Response;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        TotpEmailVerifyV1Params params = TotpEmailVerifyV1Params.builder()\n            .challengeId("36a22460-ebc8-4ffe-a213-1683c5a420c5")\n            .otp("123456")\n            .build();\n        TotpEmailVerifyV1Response response = client.verifications().totpEmail().verifyV1(params);\n    }\n}',
      },
      kotlin: {
        method: 'verifications().totpEmail().verifyV1',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.verifications.totpemail.TotpEmailVerifyV1Params\nimport com.plumery.api.models.verifications.totpemail.TotpEmailVerifyV1Response\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: TotpEmailVerifyV1Params = TotpEmailVerifyV1Params.builder()\n        .challengeId("36a22460-ebc8-4ffe-a213-1683c5a420c5")\n        .otp("123456")\n        .build()\n    val response: TotpEmailVerifyV1Response = client.verifications().totpEmail().verifyV1(params)\n}',
      },
      go: {
        method: 'client.Verifications.TotpEmail.VerifyV1',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tresponse, err := client.Verifications.TotpEmail.VerifyV1(\n\t\tcontext.TODO(),\n\t\t"36a22460-ebc8-4ffe-a213-1683c5a420c5",\n\t\tplumery.VerificationTotpEmailVerifyV1Params{\n\t\t\tOtp: plumery.F("123456"),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.Token)\n}\n',
      },
      cli: {
        method: 'totp-email verifyV1',
        example:
          "plumery verifications:totp-email verify-v1 \\\n  --session 'My Session' \\\n  --challenge-id 36a22460-ebc8-4ffe-a213-1683c5a420c5 \\\n  --otp 123456",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/verifications/totp-email/$CHALLENGE_ID:verify \\\n    -H \'Content-Type: application/json\' \\\n    -d \'{\n          "otp": "123456"\n        }\'',
      },
    },
  },
  {
    name: 'verifyV2',
    endpoint: '/api/v2/verifications/totp-email/{challengeId}:verify',
    httpMethod: 'post',
    summary: 'Verify Email OTP (v2)',
    description: 'Verify email TOTP code for an existing challenge.',
    stainlessPath: '(resource) verifications.totp-email > (method) verifyV2',
    qualified: 'client.verifications.totpEmail.verifyV2',
    params: ['challengeId: string;', 'otp: string;', 'X-Request-ID?: string;'],
    response: '{ token: string; }',
    markdown:
      "## verifyV2\n\n`client.verifications.totpEmail.verifyV2(challengeId: string, otp: string, X-Request-ID?: string): { token: string; }`\n\n**post** `/api/v2/verifications/totp-email/{challengeId}:verify`\n\nVerify email TOTP code for an existing challenge.\n\n### Parameters\n\n- `challengeId: string`\n\n- `otp: string`\n  The One-Time Password (OTP) sent to the user\n\n- `X-Request-ID?: string`\n\n### Returns\n\n- `{ token: string; }`\n\n  - `token: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.verifications.totpEmail.verifyV2('36a22460-ebc8-4ffe-a213-1683c5a420c5', { otp: '123456' });\n\nconsole.log(response);\n```",
    perLanguage: {
      typescript: {
        method: 'client.verifications.totpEmail.verifyV2',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.verifications.totpEmail.verifyV2(\n  '36a22460-ebc8-4ffe-a213-1683c5a420c5',\n  { otp: '123456' },\n);\n\nconsole.log(response.token);",
      },
      python: {
        method: 'verifications.totp_email.verify_v2',
        example:
          'from plumery import Plumery\n\nclient = Plumery()\nresponse = client.verifications.totp_email.verify_v2(\n    challenge_id="36a22460-ebc8-4ffe-a213-1683c5a420c5",\n    otp="123456",\n)\nprint(response.token)',
      },
      java: {
        method: 'verifications().totpEmail().verifyV2',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.verifications.totpemail.TotpEmailVerifyV2Params;\nimport com.plumery.api.models.verifications.totpemail.TotpEmailVerifyV2Response;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        TotpEmailVerifyV2Params params = TotpEmailVerifyV2Params.builder()\n            .challengeId("36a22460-ebc8-4ffe-a213-1683c5a420c5")\n            .otp("123456")\n            .build();\n        TotpEmailVerifyV2Response response = client.verifications().totpEmail().verifyV2(params);\n    }\n}',
      },
      kotlin: {
        method: 'verifications().totpEmail().verifyV2',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.verifications.totpemail.TotpEmailVerifyV2Params\nimport com.plumery.api.models.verifications.totpemail.TotpEmailVerifyV2Response\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: TotpEmailVerifyV2Params = TotpEmailVerifyV2Params.builder()\n        .challengeId("36a22460-ebc8-4ffe-a213-1683c5a420c5")\n        .otp("123456")\n        .build()\n    val response: TotpEmailVerifyV2Response = client.verifications().totpEmail().verifyV2(params)\n}',
      },
      go: {
        method: 'client.Verifications.TotpEmail.VerifyV2',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tresponse, err := client.Verifications.TotpEmail.VerifyV2(\n\t\tcontext.TODO(),\n\t\t"36a22460-ebc8-4ffe-a213-1683c5a420c5",\n\t\tplumery.VerificationTotpEmailVerifyV2Params{\n\t\t\tOtp: plumery.F("123456"),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.Token)\n}\n',
      },
      cli: {
        method: 'totp-email verifyV2',
        example:
          "plumery verifications:totp-email verify-v2 \\\n  --session 'My Session' \\\n  --challenge-id 36a22460-ebc8-4ffe-a213-1683c5a420c5 \\\n  --otp 123456",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v2/verifications/totp-email/$CHALLENGE_ID:verify \\\n    -H \'Content-Type: application/json\' \\\n    -d \'{\n          "otp": "123456"\n        }\'',
      },
    },
  },
  {
    name: 'verify',
    endpoint: '/api/v2/verifications/totp-email/{challengeId}:verify',
    httpMethod: 'post',
    summary: 'Verify Email OTP (v2)',
    description: 'Verify email TOTP code for an existing challenge.',
    stainlessPath: '(resource) verifications.totp-email > (method) verify',
    qualified: 'client.verifications.totpEmail.verify',
    perLanguage: {
      typescript: {
        method: 'client.verifications.totpEmail.verify',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.verifications.totpEmail.verify(\n  '36a22460-ebc8-4ffe-a213-1683c5a420c5',\n  { otp: '123456' },\n);\n\nconsole.log(response.token);",
      },
      python: {
        method: 'verifications.totp_email.verify',
        example:
          'from plumery import Plumery\n\nclient = Plumery()\nresponse = client.verifications.totp_email.verify(\n    challenge_id="36a22460-ebc8-4ffe-a213-1683c5a420c5",\n    otp="123456",\n)\nprint(response.token)',
      },
      java: {
        method: 'verifications().totpEmail().verify',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.verifications.totpemail.TotpEmailVerifyParams;\nimport com.plumery.api.models.verifications.totpemail.TotpEmailVerifyResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        TotpEmailVerifyParams params = TotpEmailVerifyParams.builder()\n            .challengeId("36a22460-ebc8-4ffe-a213-1683c5a420c5")\n            .otp("123456")\n            .build();\n        TotpEmailVerifyResponse response = client.verifications().totpEmail().verify(params);\n    }\n}',
      },
      kotlin: {
        method: 'verifications().totpEmail().verify',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.verifications.totpemail.TotpEmailVerifyParams\nimport com.plumery.api.models.verifications.totpemail.TotpEmailVerifyResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: TotpEmailVerifyParams = TotpEmailVerifyParams.builder()\n        .challengeId("36a22460-ebc8-4ffe-a213-1683c5a420c5")\n        .otp("123456")\n        .build()\n    val response: TotpEmailVerifyResponse = client.verifications().totpEmail().verify(params)\n}',
      },
      go: {
        method: 'client.Verifications.TotpEmail.Verify',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tresponse, err := client.Verifications.TotpEmail.Verify(\n\t\tcontext.TODO(),\n\t\t"36a22460-ebc8-4ffe-a213-1683c5a420c5",\n\t\tplumery.VerificationTotpEmailVerifyParams{\n\t\t\tOtp: plumery.F("123456"),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.Token)\n}\n',
      },
      cli: {
        method: 'totp-email verify',
        example:
          "plumery verifications:totp-email verify \\\n  --session 'My Session' \\\n  --challenge-id 36a22460-ebc8-4ffe-a213-1683c5a420c5 \\\n  --otp 123456",
      },
    },
  },
  {
    name: 'initiate',
    endpoint: '/api/v1/mfa/totp-sms/{challengeId}:initiate',
    httpMethod: 'post',
    summary: 'Initiate time-based one-time password SMS challenge',
    description:
      "Initiates time-based one-time password SMS challenge.\n\nThis will initiate a time-based one-time password (TOTP) sent as an SMS to the user's phone number to authorise an operation request.\n\nOnce the TOTP is verified, using the 'Verify' endpoint, user will be able to proceed with unauthorised operation.",
    stainlessPath: '(resource) mfa.totp-sms > (method) initiate',
    qualified: 'client.mfa.totpSMS.initiate',
    params: ['challengeId: string;'],
    markdown:
      "## initiate\n\n`client.mfa.totpSMS.initiate(challengeId: string): void`\n\n**post** `/api/v1/mfa/totp-sms/{challengeId}:initiate`\n\nInitiates time-based one-time password SMS challenge.\n\nThis will initiate a time-based one-time password (TOTP) sent as an SMS to the user's phone number to authorise an operation request.\n\nOnce the TOTP is verified, using the 'Verify' endpoint, user will be able to proceed with unauthorised operation.\n\n### Parameters\n\n- `challengeId: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nawait client.mfa.totpSMS.initiate('challengeId')\n```",
    perLanguage: {
      typescript: {
        method: 'client.mfa.totpSMS.initiate',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nawait client.mfa.totpSMS.initiate('challengeId');",
      },
      python: {
        method: 'mfa.totp_sms.initiate',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nclient.mfa.totp_sms.initiate(\n    "challengeId",\n)',
      },
      java: {
        method: 'mfa().totpSms().initiate',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.mfa.totpsms.TotpSmsInitiateParams;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        client.mfa().totpSms().initiate("challengeId");\n    }\n}',
      },
      kotlin: {
        method: 'mfa().totpSms().initiate',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.mfa.totpsms.TotpSmsInitiateParams\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    client.mfa().totpSms().initiate("challengeId")\n}',
      },
      go: {
        method: 'client.Mfa.TotpSMS.Initiate',
        example:
          'package main\n\nimport (\n\t"context"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\terr := client.Mfa.TotpSMS.Initiate(context.TODO(), "challengeId")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
      },
      cli: {
        method: 'totp-sms initiate',
        example:
          "plumery mfa:totp-sms initiate \\\n  --session 'My Session' \\\n  --challenge-id challengeId",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/mfa/totp-sms/$CHALLENGE_ID:initiate \\\n    -X POST \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'verify',
    endpoint: '/api/v1/mfa/totp-sms/{challengeId}:verify',
    httpMethod: 'post',
    summary: 'Verify time-based one-time password SMS challenge',
    description:
      "Verifies the time-based one-time password sent to the user's phone number.\n\nThe unauthorised operations will be allowed to proceed once the TOTP verified successfully.",
    stainlessPath: '(resource) mfa.totp-sms > (method) verify',
    qualified: 'client.mfa.totpSMS.verify',
    params: ['challengeId: string;', 'totp: string;'],
    markdown:
      "## verify\n\n`client.mfa.totpSMS.verify(challengeId: string, totp: string): void`\n\n**post** `/api/v1/mfa/totp-sms/{challengeId}:verify`\n\nVerifies the time-based one-time password sent to the user's phone number.\n\nThe unauthorised operations will be allowed to proceed once the TOTP verified successfully.\n\n### Parameters\n\n- `challengeId: string`\n\n- `totp: string`\n  The Time-Based One-Time Password (TOTP) sent to the phone number for verification\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nawait client.mfa.totpSMS.verify('challengeId', { totp: '123456' })\n```",
    perLanguage: {
      typescript: {
        method: 'client.mfa.totpSMS.verify',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nawait client.mfa.totpSMS.verify('challengeId', { totp: '123456' });",
      },
      python: {
        method: 'mfa.totp_sms.verify',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nclient.mfa.totp_sms.verify(\n    challenge_id="challengeId",\n    totp="123456",\n)',
      },
      java: {
        method: 'mfa().totpSms().verify',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.mfa.totpsms.TotpSmsVerifyParams;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        TotpSmsVerifyParams params = TotpSmsVerifyParams.builder()\n            .challengeId("challengeId")\n            .totp("123456")\n            .build();\n        client.mfa().totpSms().verify(params);\n    }\n}',
      },
      kotlin: {
        method: 'mfa().totpSms().verify',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.mfa.totpsms.TotpSmsVerifyParams\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: TotpSmsVerifyParams = TotpSmsVerifyParams.builder()\n        .challengeId("challengeId")\n        .totp("123456")\n        .build()\n    client.mfa().totpSms().verify(params)\n}',
      },
      go: {
        method: 'client.Mfa.TotpSMS.Verify',
        example:
          'package main\n\nimport (\n\t"context"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\terr := client.Mfa.TotpSMS.Verify(\n\t\tcontext.TODO(),\n\t\t"challengeId",\n\t\tplumery.MfaTotpSMSVerifyParams{\n\t\t\tTotp: plumery.F("123456"),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
      },
      cli: {
        method: 'totp-sms verify',
        example:
          "plumery mfa:totp-sms verify \\\n  --session 'My Session' \\\n  --challenge-id challengeId \\\n  --totp 123456",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/mfa/totp-sms/$CHALLENGE_ID:verify \\\n    -H \'Content-Type: application/json\' \\\n    -H "Cookie: $SESSION" \\\n    -d \'{\n          "totp": "123456"\n        }\'',
      },
    },
  },
  {
    name: 'initiate',
    endpoint: '/api/v1/mfa/totp-email/{challengeId}:initiate',
    httpMethod: 'post',
    summary: 'Initiate time-based one-time password email challenge',
    description:
      "Initiates time-based one-time password email challenge.\n\nThis will initiate a time-based one-time password (TOTP) sent as an e-mail to the user's e-mail address to authorise an operation request.\n\nOnce the TOTP is verified, using the 'Verify' endpoint, user will be able to proceed with unauthorised operation.",
    stainlessPath: '(resource) mfa.totp-email > (method) initiate',
    qualified: 'client.mfa.totpEmail.initiate',
    params: ['challengeId: string;'],
    markdown:
      "## initiate\n\n`client.mfa.totpEmail.initiate(challengeId: string): void`\n\n**post** `/api/v1/mfa/totp-email/{challengeId}:initiate`\n\nInitiates time-based one-time password email challenge.\n\nThis will initiate a time-based one-time password (TOTP) sent as an e-mail to the user's e-mail address to authorise an operation request.\n\nOnce the TOTP is verified, using the 'Verify' endpoint, user will be able to proceed with unauthorised operation.\n\n### Parameters\n\n- `challengeId: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nawait client.mfa.totpEmail.initiate('challengeId')\n```",
    perLanguage: {
      typescript: {
        method: 'client.mfa.totpEmail.initiate',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nawait client.mfa.totpEmail.initiate('challengeId');",
      },
      python: {
        method: 'mfa.totp_email.initiate',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nclient.mfa.totp_email.initiate(\n    "challengeId",\n)',
      },
      java: {
        method: 'mfa().totpEmail().initiate',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.mfa.totpemail.TotpEmailInitiateParams;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        client.mfa().totpEmail().initiate("challengeId");\n    }\n}',
      },
      kotlin: {
        method: 'mfa().totpEmail().initiate',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.mfa.totpemail.TotpEmailInitiateParams\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    client.mfa().totpEmail().initiate("challengeId")\n}',
      },
      go: {
        method: 'client.Mfa.TotpEmail.Initiate',
        example:
          'package main\n\nimport (\n\t"context"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\terr := client.Mfa.TotpEmail.Initiate(context.TODO(), "challengeId")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
      },
      cli: {
        method: 'totp-email initiate',
        example:
          "plumery mfa:totp-email initiate \\\n  --session 'My Session' \\\n  --challenge-id challengeId",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/mfa/totp-email/$CHALLENGE_ID:initiate \\\n    -X POST \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'verify',
    endpoint: '/api/v1/mfa/totp-email/{challengeId}:verify',
    httpMethod: 'post',
    summary: 'Verify time-based one-time password email challenge',
    description:
      "Verifies the time-based one-time password sent to the user's mail address.\n\nThe unauthorised operations will be allowed to proceed once the TOTP verified successfully.",
    stainlessPath: '(resource) mfa.totp-email > (method) verify',
    qualified: 'client.mfa.totpEmail.verify',
    params: ['challengeId: string;', 'totp: string;'],
    markdown:
      "## verify\n\n`client.mfa.totpEmail.verify(challengeId: string, totp: string): void`\n\n**post** `/api/v1/mfa/totp-email/{challengeId}:verify`\n\nVerifies the time-based one-time password sent to the user's mail address.\n\nThe unauthorised operations will be allowed to proceed once the TOTP verified successfully.\n\n### Parameters\n\n- `challengeId: string`\n\n- `totp: string`\n  The Time-Based One-Time Password (TOTP) sent to the mail for verification\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nawait client.mfa.totpEmail.verify('challengeId', { totp: '123456' })\n```",
    perLanguage: {
      typescript: {
        method: 'client.mfa.totpEmail.verify',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nawait client.mfa.totpEmail.verify('challengeId', { totp: '123456' });",
      },
      python: {
        method: 'mfa.totp_email.verify',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nclient.mfa.totp_email.verify(\n    challenge_id="challengeId",\n    totp="123456",\n)',
      },
      java: {
        method: 'mfa().totpEmail().verify',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.mfa.totpemail.TotpEmailVerifyParams;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        TotpEmailVerifyParams params = TotpEmailVerifyParams.builder()\n            .challengeId("challengeId")\n            .totp("123456")\n            .build();\n        client.mfa().totpEmail().verify(params);\n    }\n}',
      },
      kotlin: {
        method: 'mfa().totpEmail().verify',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.mfa.totpemail.TotpEmailVerifyParams\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: TotpEmailVerifyParams = TotpEmailVerifyParams.builder()\n        .challengeId("challengeId")\n        .totp("123456")\n        .build()\n    client.mfa().totpEmail().verify(params)\n}',
      },
      go: {
        method: 'client.Mfa.TotpEmail.Verify',
        example:
          'package main\n\nimport (\n\t"context"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\terr := client.Mfa.TotpEmail.Verify(\n\t\tcontext.TODO(),\n\t\t"challengeId",\n\t\tplumery.MfaTotpEmailVerifyParams{\n\t\t\tTotp: plumery.F("123456"),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
      },
      cli: {
        method: 'totp-email verify',
        example:
          "plumery mfa:totp-email verify \\\n  --session 'My Session' \\\n  --challenge-id challengeId \\\n  --totp 123456",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/mfa/totp-email/$CHALLENGE_ID:verify \\\n    -H \'Content-Type: application/json\' \\\n    -H "Cookie: $SESSION" \\\n    -d \'{\n          "totp": "123456"\n        }\'',
      },
    },
  },
  {
    name: 'verify',
    endpoint: '/api/v1/mfa/password/{challengeId}:verify',
    httpMethod: 'post',
    summary: 'Verify current password challenge',
    description:
      'Verifies the current password.\n\nThe sensitive operations will be allowed to proceed once the password verified successfully.',
    stainlessPath: '(resource) mfa.password > (method) verify',
    qualified: 'client.mfa.password.verify',
    params: ['challengeId: string;', 'currentPassword: string;'],
    markdown:
      "## verify\n\n`client.mfa.password.verify(challengeId: string, currentPassword: string): void`\n\n**post** `/api/v1/mfa/password/{challengeId}:verify`\n\nVerifies the current password.\n\nThe sensitive operations will be allowed to proceed once the password verified successfully.\n\n### Parameters\n\n- `challengeId: string`\n\n- `currentPassword: string`\n  The current password\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nawait client.mfa.password.verify('challengeId', { currentPassword: 'test' })\n```",
    perLanguage: {
      typescript: {
        method: 'client.mfa.password.verify',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nawait client.mfa.password.verify('challengeId', { currentPassword: 'test' });",
      },
      python: {
        method: 'mfa.password.verify',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nclient.mfa.password.verify(\n    challenge_id="challengeId",\n    current_password="test",\n)',
      },
      java: {
        method: 'mfa().password().verify',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.mfa.password.PasswordVerifyParams;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        PasswordVerifyParams params = PasswordVerifyParams.builder()\n            .challengeId("challengeId")\n            .currentPassword("test")\n            .build();\n        client.mfa().password().verify(params);\n    }\n}',
      },
      kotlin: {
        method: 'mfa().password().verify',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.mfa.password.PasswordVerifyParams\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: PasswordVerifyParams = PasswordVerifyParams.builder()\n        .challengeId("challengeId")\n        .currentPassword("test")\n        .build()\n    client.mfa().password().verify(params)\n}',
      },
      go: {
        method: 'client.Mfa.Password.Verify',
        example:
          'package main\n\nimport (\n\t"context"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\terr := client.Mfa.Password.Verify(\n\t\tcontext.TODO(),\n\t\t"challengeId",\n\t\tplumery.MfaPasswordVerifyParams{\n\t\t\tCurrentPassword: plumery.F("test"),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
      },
      cli: {
        method: 'password verify',
        example:
          "plumery mfa:password verify \\\n  --session 'My Session' \\\n  --challenge-id challengeId \\\n  --current-password test",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/mfa/password/$CHALLENGE_ID:verify \\\n    -H \'Content-Type: application/json\' \\\n    -H "Cookie: $SESSION" \\\n    -d \'{\n          "currentPassword": "test"\n        }\'',
      },
    },
  },
  {
    name: 'initiate',
    endpoint: '/api/v1/mfa/device-signature/{challengeId}:initiate',
    httpMethod: 'post',
    summary: 'Initiate device signature',
    description:
      'Initiates device signing session.\n\nThe returned data to sign is to be signed and to be verified via the verification endpoint.',
    stainlessPath: '(resource) mfa.deviceSignature > (method) initiate',
    qualified: 'client.mfa.deviceSignature.initiate',
    params: ['challengeId: string;', 'deviceId: string;', "deviceSigningMethod: 'BIOMETRICS' | 'PASSCODE';"],
    response: '{ dataToSign: string; }',
    markdown:
      "## initiate\n\n`client.mfa.deviceSignature.initiate(challengeId: string, deviceId: string, deviceSigningMethod: 'BIOMETRICS' | 'PASSCODE'): { dataToSign: string; }`\n\n**post** `/api/v1/mfa/device-signature/{challengeId}:initiate`\n\nInitiates device signing session.\n\nThe returned data to sign is to be signed and to be verified via the verification endpoint.\n\n### Parameters\n\n- `challengeId: string`\n\n- `deviceId: string`\n  The id of the device used to sign\n\n- `deviceSigningMethod: 'BIOMETRICS' | 'PASSCODE'`\n  The method for device signing (e.g. PASSCODE)\n\n### Returns\n\n- `{ dataToSign: string; }`\n\n  - `dataToSign: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.mfa.deviceSignature.initiate('challengeId', { deviceId: 'deviceId', deviceSigningMethod: 'BIOMETRICS' });\n\nconsole.log(response);\n```",
    perLanguage: {
      typescript: {
        method: 'client.mfa.deviceSignature.initiate',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nconst response = await client.mfa.deviceSignature.initiate('challengeId', {\n  deviceId: 'deviceId',\n  deviceSigningMethod: 'BIOMETRICS',\n});\n\nconsole.log(response.dataToSign);",
      },
      python: {
        method: 'mfa.device_signature.initiate',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nresponse = client.mfa.device_signature.initiate(\n    challenge_id="challengeId",\n    device_id="deviceId",\n    device_signing_method="BIOMETRICS",\n)\nprint(response.data_to_sign)',
      },
      java: {
        method: 'mfa().deviceSignature().initiate',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.mfa.devicesignature.DeviceSignatureInitiateParams;\nimport com.plumery.api.models.mfa.devicesignature.DeviceSignatureInitiateResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        DeviceSignatureInitiateParams params = DeviceSignatureInitiateParams.builder()\n            .challengeId("challengeId")\n            .deviceId("deviceId")\n            .deviceSigningMethod(DeviceSignatureInitiateParams.DeviceSigningMethod.BIOMETRICS)\n            .build();\n        DeviceSignatureInitiateResponse response = client.mfa().deviceSignature().initiate(params);\n    }\n}',
      },
      kotlin: {
        method: 'mfa().deviceSignature().initiate',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.mfa.devicesignature.DeviceSignatureInitiateParams\nimport com.plumery.api.models.mfa.devicesignature.DeviceSignatureInitiateResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: DeviceSignatureInitiateParams = DeviceSignatureInitiateParams.builder()\n        .challengeId("challengeId")\n        .deviceId("deviceId")\n        .deviceSigningMethod(DeviceSignatureInitiateParams.DeviceSigningMethod.BIOMETRICS)\n        .build()\n    val response: DeviceSignatureInitiateResponse = client.mfa().deviceSignature().initiate(params)\n}',
      },
      go: {
        method: 'client.Mfa.DeviceSignature.Initiate',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tresponse, err := client.Mfa.DeviceSignature.Initiate(\n\t\tcontext.TODO(),\n\t\t"challengeId",\n\t\tplumery.MfaDeviceSignatureInitiateParams{\n\t\t\tDeviceID:            plumery.F("deviceId"),\n\t\t\tDeviceSigningMethod: plumery.F(plumery.MfaDeviceSignatureInitiateParamsDeviceSigningMethodBiometrics),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.DataToSign)\n}\n',
      },
      cli: {
        method: 'deviceSignature initiate',
        example:
          "plumery mfa:device-signature initiate \\\n  --session 'My Session' \\\n  --challenge-id challengeId \\\n  --device-id deviceId \\\n  --device-signing-method BIOMETRICS",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/mfa/device-signature/$CHALLENGE_ID:initiate \\\n    -H \'Content-Type: application/json\' \\\n    -H "Cookie: $SESSION" \\\n    -d \'{\n          "deviceId": "deviceId",\n          "deviceSigningMethod": "BIOMETRICS"\n        }\'',
      },
    },
  },
  {
    name: 'verify',
    endpoint: '/api/v1/mfa/device-signature/{challengeId}:verify',
    httpMethod: 'post',
    summary: 'Verify device signature',
    description:
      'Verifies the device signature.\n\nThe sensitive operations will be allowed to proceed once the signature is verified successfully.',
    stainlessPath: '(resource) mfa.deviceSignature > (method) verify',
    qualified: 'client.mfa.deviceSignature.verify',
    params: ['challengeId: string;', 'signature: string;'],
    markdown:
      "## verify\n\n`client.mfa.deviceSignature.verify(challengeId: string, signature: string): void`\n\n**post** `/api/v1/mfa/device-signature/{challengeId}:verify`\n\nVerifies the device signature.\n\nThe sensitive operations will be allowed to proceed once the signature is verified successfully.\n\n### Parameters\n\n- `challengeId: string`\n\n- `signature: string`\n  The signature of the challengeId made with the device id specified\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nawait client.mfa.deviceSignature.verify('challengeId', { signature: 'signature' })\n```",
    perLanguage: {
      typescript: {
        method: 'client.mfa.deviceSignature.verify',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nawait client.mfa.deviceSignature.verify('challengeId', { signature: 'signature' });",
      },
      python: {
        method: 'mfa.device_signature.verify',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nclient.mfa.device_signature.verify(\n    challenge_id="challengeId",\n    signature="signature",\n)',
      },
      java: {
        method: 'mfa().deviceSignature().verify',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.mfa.devicesignature.DeviceSignatureVerifyParams;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        DeviceSignatureVerifyParams params = DeviceSignatureVerifyParams.builder()\n            .challengeId("challengeId")\n            .signature("signature")\n            .build();\n        client.mfa().deviceSignature().verify(params);\n    }\n}',
      },
      kotlin: {
        method: 'mfa().deviceSignature().verify',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.mfa.devicesignature.DeviceSignatureVerifyParams\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: DeviceSignatureVerifyParams = DeviceSignatureVerifyParams.builder()\n        .challengeId("challengeId")\n        .signature("signature")\n        .build()\n    client.mfa().deviceSignature().verify(params)\n}',
      },
      go: {
        method: 'client.Mfa.DeviceSignature.Verify',
        example:
          'package main\n\nimport (\n\t"context"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\terr := client.Mfa.DeviceSignature.Verify(\n\t\tcontext.TODO(),\n\t\t"challengeId",\n\t\tplumery.MfaDeviceSignatureVerifyParams{\n\t\t\tSignature: plumery.F("signature"),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
      },
      cli: {
        method: 'deviceSignature verify',
        example:
          "plumery mfa:device-signature verify \\\n  --session 'My Session' \\\n  --challenge-id challengeId \\\n  --signature signature",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/mfa/device-signature/$CHALLENGE_ID:verify \\\n    -H \'Content-Type: application/json\' \\\n    -H "Cookie: $SESSION" \\\n    -d \'{\n          "signature": "signature"\n        }\'',
      },
    },
  },
  {
    name: 'list',
    endpoint: '/api/v1/mfa/device-signature/pending',
    httpMethod: 'get',
    summary: 'Get pending device signatures',
    description: 'Get pending device signatures',
    stainlessPath: '(resource) mfa.deviceSignature.pending > (method) list',
    qualified: 'client.mfa.deviceSignature.pending.list',
    response:
      '{ pendingDeviceSignatures?: { id: string; bindingMessage: string; challengeId: string; confirmationMessage: string; createdAt: string; userId: string; verified: boolean; }[]; }',
    markdown:
      "## list\n\n`client.mfa.deviceSignature.pending.list(): { pendingDeviceSignatures?: object[]; }`\n\n**get** `/api/v1/mfa/device-signature/pending`\n\nGet pending device signatures\n\n### Returns\n\n- `{ pendingDeviceSignatures?: { id: string; bindingMessage: string; challengeId: string; confirmationMessage: string; createdAt: string; userId: string; verified: boolean; }[]; }`\n  List of pending device signature for a given user.\n\n  - `pendingDeviceSignatures?: { id: string; bindingMessage: string; challengeId: string; confirmationMessage: string; createdAt: string; userId: string; verified: boolean; }[]`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst pendings = await client.mfa.deviceSignature.pending.list();\n\nconsole.log(pendings);\n```",
    perLanguage: {
      typescript: {
        method: 'client.mfa.deviceSignature.pending.list',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nconst pendings = await client.mfa.deviceSignature.pending.list();\n\nconsole.log(pendings.pendingDeviceSignatures);",
      },
      python: {
        method: 'mfa.device_signature.pending.list',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\npendings = client.mfa.device_signature.pending.list()\nprint(pendings.pending_device_signatures)',
      },
      java: {
        method: 'mfa().deviceSignature().pending().list',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.mfa.devicesignature.pending.PendingListParams;\nimport com.plumery.api.models.mfa.devicesignature.pending.PendingListResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        PendingListResponse pendings = client.mfa().deviceSignature().pending().list();\n    }\n}',
      },
      kotlin: {
        method: 'mfa().deviceSignature().pending().list',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.mfa.devicesignature.pending.PendingListParams\nimport com.plumery.api.models.mfa.devicesignature.pending.PendingListResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val pendings: PendingListResponse = client.mfa().deviceSignature().pending().list()\n}',
      },
      go: {
        method: 'client.Mfa.DeviceSignature.Pending.List',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tpendings, err := client.Mfa.DeviceSignature.Pending.List(context.TODO())\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", pendings.PendingDeviceSignatures)\n}\n',
      },
      cli: {
        method: 'pending list',
        example: "plumery mfa:device-signature:pending list \\\n  --session 'My Session'",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/mfa/device-signature/pending \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'initiate',
    endpoint: '/api/v1/mfa/device-signature/pending/{challengeId}:initiate',
    httpMethod: 'post',
    summary: 'Initiate device signature pending',
    description:
      'Initiates device signing session for pending device signature.\n\nThe returned data to sign is to be signed and to be verified via the pending verification endpoint.',
    stainlessPath: '(resource) mfa.deviceSignature.pending > (method) initiate',
    qualified: 'client.mfa.deviceSignature.pending.initiate',
    params: ['challengeId: string;', 'deviceId: string;', "deviceSigningMethod: 'BIOMETRICS' | 'PASSCODE';"],
    response: '{ dataToSign: string; }',
    markdown:
      "## initiate\n\n`client.mfa.deviceSignature.pending.initiate(challengeId: string, deviceId: string, deviceSigningMethod: 'BIOMETRICS' | 'PASSCODE'): { dataToSign: string; }`\n\n**post** `/api/v1/mfa/device-signature/pending/{challengeId}:initiate`\n\nInitiates device signing session for pending device signature.\n\nThe returned data to sign is to be signed and to be verified via the pending verification endpoint.\n\n### Parameters\n\n- `challengeId: string`\n\n- `deviceId: string`\n  The id of the device used to sign\n\n- `deviceSigningMethod: 'BIOMETRICS' | 'PASSCODE'`\n  The method for device signing (e.g. PASSCODE)\n\n### Returns\n\n- `{ dataToSign: string; }`\n\n  - `dataToSign: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.mfa.deviceSignature.pending.initiate('challengeId', { deviceId: 'deviceId', deviceSigningMethod: 'BIOMETRICS' });\n\nconsole.log(response);\n```",
    perLanguage: {
      typescript: {
        method: 'client.mfa.deviceSignature.pending.initiate',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nconst response = await client.mfa.deviceSignature.pending.initiate('challengeId', {\n  deviceId: 'deviceId',\n  deviceSigningMethod: 'BIOMETRICS',\n});\n\nconsole.log(response.dataToSign);",
      },
      python: {
        method: 'mfa.device_signature.pending.initiate',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nresponse = client.mfa.device_signature.pending.initiate(\n    challenge_id="challengeId",\n    device_id="deviceId",\n    device_signing_method="BIOMETRICS",\n)\nprint(response.data_to_sign)',
      },
      java: {
        method: 'mfa().deviceSignature().pending().initiate',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.mfa.devicesignature.pending.PendingInitiateParams;\nimport com.plumery.api.models.mfa.devicesignature.pending.PendingInitiateResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        PendingInitiateParams params = PendingInitiateParams.builder()\n            .challengeId("challengeId")\n            .deviceId("deviceId")\n            .deviceSigningMethod(PendingInitiateParams.DeviceSigningMethod.BIOMETRICS)\n            .build();\n        PendingInitiateResponse response = client.mfa().deviceSignature().pending().initiate(params);\n    }\n}',
      },
      kotlin: {
        method: 'mfa().deviceSignature().pending().initiate',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.mfa.devicesignature.pending.PendingInitiateParams\nimport com.plumery.api.models.mfa.devicesignature.pending.PendingInitiateResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: PendingInitiateParams = PendingInitiateParams.builder()\n        .challengeId("challengeId")\n        .deviceId("deviceId")\n        .deviceSigningMethod(PendingInitiateParams.DeviceSigningMethod.BIOMETRICS)\n        .build()\n    val response: PendingInitiateResponse = client.mfa().deviceSignature().pending().initiate(params)\n}',
      },
      go: {
        method: 'client.Mfa.DeviceSignature.Pending.Initiate',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tresponse, err := client.Mfa.DeviceSignature.Pending.Initiate(\n\t\tcontext.TODO(),\n\t\t"challengeId",\n\t\tplumery.MfaDeviceSignaturePendingInitiateParams{\n\t\t\tDeviceID:            plumery.F("deviceId"),\n\t\t\tDeviceSigningMethod: plumery.F(plumery.MfaDeviceSignaturePendingInitiateParamsDeviceSigningMethodBiometrics),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.DataToSign)\n}\n',
      },
      cli: {
        method: 'pending initiate',
        example:
          "plumery mfa:device-signature:pending initiate \\\n  --session 'My Session' \\\n  --challenge-id challengeId \\\n  --device-id deviceId \\\n  --device-signing-method BIOMETRICS",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/mfa/device-signature/pending/$CHALLENGE_ID:initiate \\\n    -H \'Content-Type: application/json\' \\\n    -H "Cookie: $SESSION" \\\n    -d \'{\n          "deviceId": "deviceId",\n          "deviceSigningMethod": "BIOMETRICS"\n        }\'',
      },
    },
  },
  {
    name: 'verify',
    endpoint: '/api/v1/mfa/device-signature/pending/{challengeId}:verify',
    httpMethod: 'post',
    summary: 'Verify pending device signature',
    description:
      'A device signature initiated internally generates a pending device signature which has to be verified using this endpoint.\n\nVerifies the pending device signature.\n\nThe sensitive operations will be allowed to proceed once the signature is verified successfully.',
    stainlessPath: '(resource) mfa.deviceSignature.pending > (method) verify',
    qualified: 'client.mfa.deviceSignature.pending.verify',
    params: ['challengeId: string;', 'signature: string;'],
    markdown:
      "## verify\n\n`client.mfa.deviceSignature.pending.verify(challengeId: string, signature: string): void`\n\n**post** `/api/v1/mfa/device-signature/pending/{challengeId}:verify`\n\nA device signature initiated internally generates a pending device signature which has to be verified using this endpoint.\n\nVerifies the pending device signature.\n\nThe sensitive operations will be allowed to proceed once the signature is verified successfully.\n\n### Parameters\n\n- `challengeId: string`\n\n- `signature: string`\n  The signature of the challengeId made with the device id specified\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nawait client.mfa.deviceSignature.pending.verify('challengeId', { signature: 'signature' })\n```",
    perLanguage: {
      typescript: {
        method: 'client.mfa.deviceSignature.pending.verify',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nawait client.mfa.deviceSignature.pending.verify('challengeId', { signature: 'signature' });",
      },
      python: {
        method: 'mfa.device_signature.pending.verify',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nclient.mfa.device_signature.pending.verify(\n    challenge_id="challengeId",\n    signature="signature",\n)',
      },
      java: {
        method: 'mfa().deviceSignature().pending().verify',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.mfa.devicesignature.pending.PendingVerifyParams;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        PendingVerifyParams params = PendingVerifyParams.builder()\n            .challengeId("challengeId")\n            .signature("signature")\n            .build();\n        client.mfa().deviceSignature().pending().verify(params);\n    }\n}',
      },
      kotlin: {
        method: 'mfa().deviceSignature().pending().verify',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.mfa.devicesignature.pending.PendingVerifyParams\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: PendingVerifyParams = PendingVerifyParams.builder()\n        .challengeId("challengeId")\n        .signature("signature")\n        .build()\n    client.mfa().deviceSignature().pending().verify(params)\n}',
      },
      go: {
        method: 'client.Mfa.DeviceSignature.Pending.Verify',
        example:
          'package main\n\nimport (\n\t"context"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\terr := client.Mfa.DeviceSignature.Pending.Verify(\n\t\tcontext.TODO(),\n\t\t"challengeId",\n\t\tplumery.MfaDeviceSignaturePendingVerifyParams{\n\t\t\tSignature: plumery.F("signature"),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
      },
      cli: {
        method: 'pending verify',
        example:
          "plumery mfa:device-signature:pending verify \\\n  --session 'My Session' \\\n  --challenge-id challengeId \\\n  --signature signature",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/mfa/device-signature/pending/$CHALLENGE_ID:verify \\\n    -H \'Content-Type: application/json\' \\\n    -H "Cookie: $SESSION" \\\n    -d \'{\n          "signature": "signature"\n        }\'',
      },
    },
  },
  {
    name: 'reject',
    endpoint: '/api/v1/mfa/device-signature/pending/{challengeId}:reject',
    httpMethod: 'post',
    summary: 'Reject pending device signature',
    description:
      "Rejects a pending device signature\n\nOnce rejected, the original initiator polling the 'Confirm device signature' endpoint receives a REJECTED status",
    stainlessPath: '(resource) mfa.deviceSignature.pending > (method) reject',
    qualified: 'client.mfa.deviceSignature.pending.reject',
    params: ['challengeId: string;'],
    markdown:
      "## reject\n\n`client.mfa.deviceSignature.pending.reject(challengeId: string): void`\n\n**post** `/api/v1/mfa/device-signature/pending/{challengeId}:reject`\n\nRejects a pending device signature\n\nOnce rejected, the original initiator polling the 'Confirm device signature' endpoint receives a REJECTED status\n\n### Parameters\n\n- `challengeId: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nawait client.mfa.deviceSignature.pending.reject('challengeId')\n```",
    perLanguage: {
      typescript: {
        method: 'client.mfa.deviceSignature.pending.reject',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nawait client.mfa.deviceSignature.pending.reject('challengeId');",
      },
      python: {
        method: 'mfa.device_signature.pending.reject',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nclient.mfa.device_signature.pending.reject(\n    "challengeId",\n)',
      },
      java: {
        method: 'mfa().deviceSignature().pending().reject',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.mfa.devicesignature.pending.PendingRejectParams;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        client.mfa().deviceSignature().pending().reject("challengeId");\n    }\n}',
      },
      kotlin: {
        method: 'mfa().deviceSignature().pending().reject',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.mfa.devicesignature.pending.PendingRejectParams\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    client.mfa().deviceSignature().pending().reject("challengeId")\n}',
      },
      go: {
        method: 'client.Mfa.DeviceSignature.Pending.Reject',
        example:
          'package main\n\nimport (\n\t"context"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\terr := client.Mfa.DeviceSignature.Pending.Reject(context.TODO(), "challengeId")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
      },
      cli: {
        method: 'pending reject',
        example:
          "plumery mfa:device-signature:pending reject \\\n  --session 'My Session' \\\n  --challenge-id challengeId",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/mfa/device-signature/pending/$CHALLENGE_ID:reject \\\n    -X POST \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'initiateV1',
    endpoint: '/api/v1/mfa/sk-id/smart-id/signature/{challengeId}:initiate',
    httpMethod: 'post',
    summary: 'Initiate Smart-ID signing challenge',
    description:
      'Initiates SK-ID Smart-ID signing challenge.\n\nThis will initiate a process of document signing and return verification code which end-user should confirm in SK-ID Smart-ID application.',
    stainlessPath: '(resource) mfa.sk-id.smart-id.signature > (method) initiateV1',
    qualified: 'client.mfa.skID.smartID.signature.initiateV1',
    params: ['challengeId: string;'],
    response: '{ verificationCode?: string; }',
    markdown:
      "## initiateV1\n\n`client.mfa.skID.smartID.signature.initiateV1(challengeId: string): { verificationCode?: string; }`\n\n**post** `/api/v1/mfa/sk-id/smart-id/signature/{challengeId}:initiate`\n\nInitiates SK-ID Smart-ID signing challenge.\n\nThis will initiate a process of document signing and return verification code which end-user should confirm in SK-ID Smart-ID application.\n\n### Parameters\n\n- `challengeId: string`\n\n### Returns\n\n- `{ verificationCode?: string; }`\n\n  - `verificationCode?: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.mfa.skID.smartID.signature.initiateV1('2751d7d9-df79-4412-b4c4-28aaa7075548');\n\nconsole.log(response);\n```",
    perLanguage: {
      typescript: {
        method: 'client.mfa.skID.smartID.signature.initiateV1',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nconst response = await client.mfa.skID.smartID.signature.initiateV1(\n  '2751d7d9-df79-4412-b4c4-28aaa7075548',\n);\n\nconsole.log(response.verificationCode);",
      },
      python: {
        method: 'mfa.sk_id.smart_id.signature.initiate_v1',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nresponse = client.mfa.sk_id.smart_id.signature.initiate_v1(\n    "2751d7d9-df79-4412-b4c4-28aaa7075548",\n)\nprint(response.verification_code)',
      },
      java: {
        method: 'mfa().skId().smartId().signature().initiateV1',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.mfa.skid.smartid.signature.SignatureInitiateV1Params;\nimport com.plumery.api.models.mfa.skid.smartid.signature.SignatureInitiateV1Response;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        SignatureInitiateV1Response response = client.mfa().skId().smartId().signature().initiateV1("2751d7d9-df79-4412-b4c4-28aaa7075548");\n    }\n}',
      },
      kotlin: {
        method: 'mfa().skId().smartId().signature().initiateV1',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.mfa.skid.smartid.signature.SignatureInitiateV1Params\nimport com.plumery.api.models.mfa.skid.smartid.signature.SignatureInitiateV1Response\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val response: SignatureInitiateV1Response = client.mfa().skId().smartId().signature().initiateV1("2751d7d9-df79-4412-b4c4-28aaa7075548")\n}',
      },
      go: {
        method: 'client.Mfa.SkID.SmartID.Signature.InitiateV1',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tresponse, err := client.Mfa.SkID.SmartID.Signature.InitiateV1(context.TODO(), "2751d7d9-df79-4412-b4c4-28aaa7075548")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.VerificationCode)\n}\n',
      },
      cli: {
        method: 'signature initiateV1',
        example:
          "plumery mfa:sk-id:smart-id:signature initiate-v1 \\\n  --session 'My Session' \\\n  --challenge-id 2751d7d9-df79-4412-b4c4-28aaa7075548",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/mfa/sk-id/smart-id/signature/$CHALLENGE_ID:initiate \\\n    -X POST \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'confirmV1',
    endpoint: '/api/v1/mfa/sk-id/smart-id/signature/{challengeId}:confirm',
    httpMethod: 'post',
    summary: 'Confirm SK-ID Smart-ID signing challenge',
    description:
      "Confirms SK-ID Smart-ID signing challenge.\n\nThis will trigger notification to user's phone with prompt to confirm signing. Then get the signature, verify it and save.\nNote:\nThis endpoint should be polled repeatedly whenever a SK_ID_SIGNING_NOT_YET_COMPLETED_EXCEPTION error response is returned.\nContinue polling until either:\n  - a successful response (204 No Content) is received, indicating signing has completed, or\n  - a different error response is returned, which means the signing process has failed and polling must stop.",
    stainlessPath: '(resource) mfa.sk-id.smart-id.signature > (method) confirmV1',
    qualified: 'client.mfa.skID.smartID.signature.confirmV1',
    params: ['challengeId: string;'],
    markdown:
      "## confirmV1\n\n`client.mfa.skID.smartID.signature.confirmV1(challengeId: string): void`\n\n**post** `/api/v1/mfa/sk-id/smart-id/signature/{challengeId}:confirm`\n\nConfirms SK-ID Smart-ID signing challenge.\n\nThis will trigger notification to user's phone with prompt to confirm signing. Then get the signature, verify it and save.\nNote:\nThis endpoint should be polled repeatedly whenever a SK_ID_SIGNING_NOT_YET_COMPLETED_EXCEPTION error response is returned.\nContinue polling until either:\n  - a successful response (204 No Content) is received, indicating signing has completed, or\n  - a different error response is returned, which means the signing process has failed and polling must stop.\n\n### Parameters\n\n- `challengeId: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nawait client.mfa.skID.smartID.signature.confirmV1('2751d7d9-df79-4412-b4c4-28aaa7075548')\n```",
    perLanguage: {
      typescript: {
        method: 'client.mfa.skID.smartID.signature.confirmV1',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nawait client.mfa.skID.smartID.signature.confirmV1('2751d7d9-df79-4412-b4c4-28aaa7075548');",
      },
      python: {
        method: 'mfa.sk_id.smart_id.signature.confirm_v1',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nclient.mfa.sk_id.smart_id.signature.confirm_v1(\n    "2751d7d9-df79-4412-b4c4-28aaa7075548",\n)',
      },
      java: {
        method: 'mfa().skId().smartId().signature().confirmV1',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.mfa.skid.smartid.signature.SignatureConfirmV1Params;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        client.mfa().skId().smartId().signature().confirmV1("2751d7d9-df79-4412-b4c4-28aaa7075548");\n    }\n}',
      },
      kotlin: {
        method: 'mfa().skId().smartId().signature().confirmV1',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.mfa.skid.smartid.signature.SignatureConfirmV1Params\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    client.mfa().skId().smartId().signature().confirmV1("2751d7d9-df79-4412-b4c4-28aaa7075548")\n}',
      },
      go: {
        method: 'client.Mfa.SkID.SmartID.Signature.ConfirmV1',
        example:
          'package main\n\nimport (\n\t"context"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\terr := client.Mfa.SkID.SmartID.Signature.ConfirmV1(context.TODO(), "2751d7d9-df79-4412-b4c4-28aaa7075548")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
      },
      cli: {
        method: 'signature confirmV1',
        example:
          "plumery mfa:sk-id:smart-id:signature confirm-v1 \\\n  --session 'My Session' \\\n  --challenge-id 2751d7d9-df79-4412-b4c4-28aaa7075548",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/mfa/sk-id/smart-id/signature/$CHALLENGE_ID:confirm \\\n    -X POST \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'initiateV2',
    endpoint: '/api/v2/mfa/sk-id/smart-id/signature/{challengeId}:initiate',
    httpMethod: 'post',
    summary: 'Initiate Smart-ID signing challenge',
    description:
      'Initiates SK-ID Smart-ID signing challenge.\n\nThis endpoint initiates the document signing process and returns the current signing session status.\n- When the status is `PENDING_CODE`, the signing session is not fully initialized and the verification code is not present in the response.\n- When the status is `PENDING_SIGNATURE`, the signing session is fully initialized and the response includes a verification code that the end user must confirm in the SK-ID Smart-ID application.',
    stainlessPath: '(resource) mfa.sk-id.smart-id.signature > (method) initiateV2',
    qualified: 'client.mfa.skID.smartID.signature.initiateV2',
    params: ['challengeId: string;'],
    response: "{ status?: 'PENDING_CODE' | 'PENDING_SIGNING'; verificationCode?: string; }",
    markdown:
      "## initiateV2\n\n`client.mfa.skID.smartID.signature.initiateV2(challengeId: string): { status?: 'PENDING_CODE' | 'PENDING_SIGNING'; verificationCode?: string; }`\n\n**post** `/api/v2/mfa/sk-id/smart-id/signature/{challengeId}:initiate`\n\nInitiates SK-ID Smart-ID signing challenge.\n\nThis endpoint initiates the document signing process and returns the current signing session status.\n- When the status is `PENDING_CODE`, the signing session is not fully initialized and the verification code is not present in the response.\n- When the status is `PENDING_SIGNATURE`, the signing session is fully initialized and the response includes a verification code that the end user must confirm in the SK-ID Smart-ID application.\n\n### Parameters\n\n- `challengeId: string`\n\n### Returns\n\n- `{ status?: 'PENDING_CODE' | 'PENDING_SIGNING'; verificationCode?: string; }`\n\n  - `status?: 'PENDING_CODE' | 'PENDING_SIGNING'`\n  - `verificationCode?: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.mfa.skID.smartID.signature.initiateV2('2751d7d9-df79-4412-b4c4-28aaa7075548');\n\nconsole.log(response);\n```",
    perLanguage: {
      typescript: {
        method: 'client.mfa.skID.smartID.signature.initiateV2',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nconst response = await client.mfa.skID.smartID.signature.initiateV2(\n  '2751d7d9-df79-4412-b4c4-28aaa7075548',\n);\n\nconsole.log(response.status);",
      },
      python: {
        method: 'mfa.sk_id.smart_id.signature.initiate_v2',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nresponse = client.mfa.sk_id.smart_id.signature.initiate_v2(\n    "2751d7d9-df79-4412-b4c4-28aaa7075548",\n)\nprint(response.status)',
      },
      java: {
        method: 'mfa().skId().smartId().signature().initiateV2',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.mfa.skid.smartid.signature.SignatureInitiateV2Params;\nimport com.plumery.api.models.mfa.skid.smartid.signature.SignatureInitiateV2Response;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        SignatureInitiateV2Response response = client.mfa().skId().smartId().signature().initiateV2("2751d7d9-df79-4412-b4c4-28aaa7075548");\n    }\n}',
      },
      kotlin: {
        method: 'mfa().skId().smartId().signature().initiateV2',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.mfa.skid.smartid.signature.SignatureInitiateV2Params\nimport com.plumery.api.models.mfa.skid.smartid.signature.SignatureInitiateV2Response\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val response: SignatureInitiateV2Response = client.mfa().skId().smartId().signature().initiateV2("2751d7d9-df79-4412-b4c4-28aaa7075548")\n}',
      },
      go: {
        method: 'client.Mfa.SkID.SmartID.Signature.InitiateV2',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tresponse, err := client.Mfa.SkID.SmartID.Signature.InitiateV2(context.TODO(), "2751d7d9-df79-4412-b4c4-28aaa7075548")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.Status)\n}\n',
      },
      cli: {
        method: 'signature initiateV2',
        example:
          "plumery mfa:sk-id:smart-id:signature initiate-v2 \\\n  --session 'My Session' \\\n  --challenge-id 2751d7d9-df79-4412-b4c4-28aaa7075548",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v2/mfa/sk-id/smart-id/signature/$CHALLENGE_ID:initiate \\\n    -X POST \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'confirmV2',
    endpoint: '/api/v2/mfa/sk-id/smart-id/signature/{challengeId}:confirm',
    httpMethod: 'post',
    summary: 'Confirm SK-ID Smart-ID signing challenge',
    description:
      'Confirms SK-ID Smart-ID signing challenge.\n\nThis endpoint initiates a signing session by sending a notification to the user’s phone, prompting them to confirm the signing request.\nThe client must then poll this endpoint to track the signing session status until the process is completed or fails.\n\nThe signing session progresses through the following statuses:\n  - `PENDING_CODE`\n    The signing session has been created, but is not fully initialized yet.\n    The verification code is not returned at this stage.\n\n  - `PENDING_SIGNATURE`\n    The signing session is fully initialized.\n    The verification code is returned and the user is expected to confirm the signing on their device.\n\n  - `COMPLETED`\n    The signing has been successfully completed.\n    The signature is verified and saved.\n\nThe client must poll this endpoint repeatedly until one of the following conditions is met:\n  - A 200 OK response is returned with status `COMPLETED`, indicating successful signing\n  - Any other error response is returned, indicating that the signing process has failed and polling must stop',
    stainlessPath: '(resource) mfa.sk-id.smart-id.signature > (method) confirmV2',
    qualified: 'client.mfa.skID.smartID.signature.confirmV2',
    params: ['challengeId: string;'],
    response: "{ status?: 'PENDING_CODE' | 'PENDING_SIGNING' | 'COMPLETED'; verificationCode?: string; }",
    markdown:
      "## confirmV2\n\n`client.mfa.skID.smartID.signature.confirmV2(challengeId: string): { status?: 'PENDING_CODE' | 'PENDING_SIGNING' | 'COMPLETED'; verificationCode?: string; }`\n\n**post** `/api/v2/mfa/sk-id/smart-id/signature/{challengeId}:confirm`\n\nConfirms SK-ID Smart-ID signing challenge.\n\nThis endpoint initiates a signing session by sending a notification to the user’s phone, prompting them to confirm the signing request.\nThe client must then poll this endpoint to track the signing session status until the process is completed or fails.\n\nThe signing session progresses through the following statuses:\n  - `PENDING_CODE`\n    The signing session has been created, but is not fully initialized yet.\n    The verification code is not returned at this stage.\n\n  - `PENDING_SIGNATURE`\n    The signing session is fully initialized.\n    The verification code is returned and the user is expected to confirm the signing on their device.\n\n  - `COMPLETED`\n    The signing has been successfully completed.\n    The signature is verified and saved.\n\nThe client must poll this endpoint repeatedly until one of the following conditions is met:\n  - A 200 OK response is returned with status `COMPLETED`, indicating successful signing\n  - Any other error response is returned, indicating that the signing process has failed and polling must stop\n\n### Parameters\n\n- `challengeId: string`\n\n### Returns\n\n- `{ status?: 'PENDING_CODE' | 'PENDING_SIGNING' | 'COMPLETED'; verificationCode?: string; }`\n\n  - `status?: 'PENDING_CODE' | 'PENDING_SIGNING' | 'COMPLETED'`\n  - `verificationCode?: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.mfa.skID.smartID.signature.confirmV2('2751d7d9-df79-4412-b4c4-28aaa7075548');\n\nconsole.log(response);\n```",
    perLanguage: {
      typescript: {
        method: 'client.mfa.skID.smartID.signature.confirmV2',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nconst response = await client.mfa.skID.smartID.signature.confirmV2(\n  '2751d7d9-df79-4412-b4c4-28aaa7075548',\n);\n\nconsole.log(response.status);",
      },
      python: {
        method: 'mfa.sk_id.smart_id.signature.confirm_v2',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nresponse = client.mfa.sk_id.smart_id.signature.confirm_v2(\n    "2751d7d9-df79-4412-b4c4-28aaa7075548",\n)\nprint(response.status)',
      },
      java: {
        method: 'mfa().skId().smartId().signature().confirmV2',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.mfa.skid.smartid.signature.SignatureConfirmV2Params;\nimport com.plumery.api.models.mfa.skid.smartid.signature.SignatureConfirmV2Response;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        SignatureConfirmV2Response response = client.mfa().skId().smartId().signature().confirmV2("2751d7d9-df79-4412-b4c4-28aaa7075548");\n    }\n}',
      },
      kotlin: {
        method: 'mfa().skId().smartId().signature().confirmV2',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.mfa.skid.smartid.signature.SignatureConfirmV2Params\nimport com.plumery.api.models.mfa.skid.smartid.signature.SignatureConfirmV2Response\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val response: SignatureConfirmV2Response = client.mfa().skId().smartId().signature().confirmV2("2751d7d9-df79-4412-b4c4-28aaa7075548")\n}',
      },
      go: {
        method: 'client.Mfa.SkID.SmartID.Signature.ConfirmV2',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tresponse, err := client.Mfa.SkID.SmartID.Signature.ConfirmV2(context.TODO(), "2751d7d9-df79-4412-b4c4-28aaa7075548")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.Status)\n}\n',
      },
      cli: {
        method: 'signature confirmV2',
        example:
          "plumery mfa:sk-id:smart-id:signature confirm-v2 \\\n  --session 'My Session' \\\n  --challenge-id 2751d7d9-df79-4412-b4c4-28aaa7075548",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v2/mfa/sk-id/smart-id/signature/$CHALLENGE_ID:confirm \\\n    -X POST \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'initiate',
    endpoint: '/api/v2/mfa/sk-id/smart-id/signature/{challengeId}:initiate',
    httpMethod: 'post',
    summary: 'Initiate Smart-ID signing challenge',
    description:
      'Initiates SK-ID Smart-ID signing challenge.\n\nThis endpoint initiates the document signing process and returns the current signing session status.\n- When the status is `PENDING_CODE`, the signing session is not fully initialized and the verification code is not present in the response.\n- When the status is `PENDING_SIGNATURE`, the signing session is fully initialized and the response includes a verification code that the end user must confirm in the SK-ID Smart-ID application.',
    stainlessPath: '(resource) mfa.sk-id.smart-id.signature > (method) initiate',
    qualified: 'client.mfa.skID.smartID.signature.initiate',
    perLanguage: {
      typescript: {
        method: 'client.mfa.skID.smartID.signature.initiate',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nconst response = await client.mfa.skID.smartID.signature.initiate(\n  '2751d7d9-df79-4412-b4c4-28aaa7075548',\n);\n\nconsole.log(response.status);",
      },
      python: {
        method: 'mfa.sk_id.smart_id.signature.initiate',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nresponse = client.mfa.sk_id.smart_id.signature.initiate(\n    "2751d7d9-df79-4412-b4c4-28aaa7075548",\n)\nprint(response.status)',
      },
      java: {
        method: 'mfa().skId().smartId().signature().initiate',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.mfa.skid.smartid.signature.SignatureInitiateParams;\nimport com.plumery.api.models.mfa.skid.smartid.signature.SignatureInitiateResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        SignatureInitiateResponse response = client.mfa().skId().smartId().signature().initiate("2751d7d9-df79-4412-b4c4-28aaa7075548");\n    }\n}',
      },
      kotlin: {
        method: 'mfa().skId().smartId().signature().initiate',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.mfa.skid.smartid.signature.SignatureInitiateParams\nimport com.plumery.api.models.mfa.skid.smartid.signature.SignatureInitiateResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val response: SignatureInitiateResponse = client.mfa().skId().smartId().signature().initiate("2751d7d9-df79-4412-b4c4-28aaa7075548")\n}',
      },
      go: {
        method: 'client.Mfa.SkID.SmartID.Signature.Initiate',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tresponse, err := client.Mfa.SkID.SmartID.Signature.Initiate(context.TODO(), "2751d7d9-df79-4412-b4c4-28aaa7075548")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.Status)\n}\n',
      },
      cli: {
        method: 'signature initiate',
        example:
          "plumery mfa:sk-id:smart-id:signature initiate \\\n  --session 'My Session' \\\n  --challenge-id 2751d7d9-df79-4412-b4c4-28aaa7075548",
      },
    },
  },
  {
    name: 'confirm',
    endpoint: '/api/v2/mfa/sk-id/smart-id/signature/{challengeId}:confirm',
    httpMethod: 'post',
    summary: 'Confirm SK-ID Smart-ID signing challenge',
    description:
      'Confirms SK-ID Smart-ID signing challenge.\n\nThis endpoint initiates a signing session by sending a notification to the user’s phone, prompting them to confirm the signing request.\nThe client must then poll this endpoint to track the signing session status until the process is completed or fails.\n\nThe signing session progresses through the following statuses:\n  - `PENDING_CODE`\n    The signing session has been created, but is not fully initialized yet.\n    The verification code is not returned at this stage.\n\n  - `PENDING_SIGNATURE`\n    The signing session is fully initialized.\n    The verification code is returned and the user is expected to confirm the signing on their device.\n\n  - `COMPLETED`\n    The signing has been successfully completed.\n    The signature is verified and saved.\n\nThe client must poll this endpoint repeatedly until one of the following conditions is met:\n  - A 200 OK response is returned with status `COMPLETED`, indicating successful signing\n  - Any other error response is returned, indicating that the signing process has failed and polling must stop',
    stainlessPath: '(resource) mfa.sk-id.smart-id.signature > (method) confirm',
    qualified: 'client.mfa.skID.smartID.signature.confirm',
    perLanguage: {
      typescript: {
        method: 'client.mfa.skID.smartID.signature.confirm',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nconst response = await client.mfa.skID.smartID.signature.confirm(\n  '2751d7d9-df79-4412-b4c4-28aaa7075548',\n);\n\nconsole.log(response.status);",
      },
      python: {
        method: 'mfa.sk_id.smart_id.signature.confirm',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nresponse = client.mfa.sk_id.smart_id.signature.confirm(\n    "2751d7d9-df79-4412-b4c4-28aaa7075548",\n)\nprint(response.status)',
      },
      java: {
        method: 'mfa().skId().smartId().signature().confirm',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.mfa.skid.smartid.signature.SignatureConfirmParams;\nimport com.plumery.api.models.mfa.skid.smartid.signature.SignatureConfirmResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        SignatureConfirmResponse response = client.mfa().skId().smartId().signature().confirm("2751d7d9-df79-4412-b4c4-28aaa7075548");\n    }\n}',
      },
      kotlin: {
        method: 'mfa().skId().smartId().signature().confirm',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.mfa.skid.smartid.signature.SignatureConfirmParams\nimport com.plumery.api.models.mfa.skid.smartid.signature.SignatureConfirmResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val response: SignatureConfirmResponse = client.mfa().skId().smartId().signature().confirm("2751d7d9-df79-4412-b4c4-28aaa7075548")\n}',
      },
      go: {
        method: 'client.Mfa.SkID.SmartID.Signature.Confirm',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tresponse, err := client.Mfa.SkID.SmartID.Signature.Confirm(context.TODO(), "2751d7d9-df79-4412-b4c4-28aaa7075548")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.Status)\n}\n',
      },
      cli: {
        method: 'signature confirm',
        example:
          "plumery mfa:sk-id:smart-id:signature confirm \\\n  --session 'My Session' \\\n  --challenge-id 2751d7d9-df79-4412-b4c4-28aaa7075548",
      },
    },
  },
  {
    name: 'initiateV1',
    endpoint: '/api/v1/mfa/sk-id/mobile-id/signature/{challengeId}:initiate',
    httpMethod: 'post',
    summary: 'Initiate Mobile-ID signing challenge',
    description:
      'Initiates SK-ID Mobile-ID signing challenge.\n\nThis will initiate a process of document signing and return verification code which end-user should confirm in SK-ID application.',
    stainlessPath: '(resource) mfa.sk-id.mobile-id.signature > (method) initiateV1',
    qualified: 'client.mfa.skID.mobileID.signature.initiateV1',
    params: ['challengeId: string;'],
    response: '{ verificationCode?: string; }',
    markdown:
      "## initiateV1\n\n`client.mfa.skID.mobileID.signature.initiateV1(challengeId: string): { verificationCode?: string; }`\n\n**post** `/api/v1/mfa/sk-id/mobile-id/signature/{challengeId}:initiate`\n\nInitiates SK-ID Mobile-ID signing challenge.\n\nThis will initiate a process of document signing and return verification code which end-user should confirm in SK-ID application.\n\n### Parameters\n\n- `challengeId: string`\n\n### Returns\n\n- `{ verificationCode?: string; }`\n\n  - `verificationCode?: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.mfa.skID.mobileID.signature.initiateV1('2751d7d9-df79-4412-b4c4-28aaa7075548');\n\nconsole.log(response);\n```",
    perLanguage: {
      typescript: {
        method: 'client.mfa.skID.mobileID.signature.initiateV1',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nconst response = await client.mfa.skID.mobileID.signature.initiateV1(\n  '2751d7d9-df79-4412-b4c4-28aaa7075548',\n);\n\nconsole.log(response.verificationCode);",
      },
      python: {
        method: 'mfa.sk_id.mobile_id.signature.initiate_v1',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nresponse = client.mfa.sk_id.mobile_id.signature.initiate_v1(\n    "2751d7d9-df79-4412-b4c4-28aaa7075548",\n)\nprint(response.verification_code)',
      },
      java: {
        method: 'mfa().skId().mobileId().signature().initiateV1',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.mfa.skid.mobileid.signature.SignatureInitiateV1Params;\nimport com.plumery.api.models.mfa.skid.mobileid.signature.SignatureInitiateV1Response;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        SignatureInitiateV1Response response = client.mfa().skId().mobileId().signature().initiateV1("2751d7d9-df79-4412-b4c4-28aaa7075548");\n    }\n}',
      },
      kotlin: {
        method: 'mfa().skId().mobileId().signature().initiateV1',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.mfa.skid.mobileid.signature.SignatureInitiateV1Params\nimport com.plumery.api.models.mfa.skid.mobileid.signature.SignatureInitiateV1Response\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val response: SignatureInitiateV1Response = client.mfa().skId().mobileId().signature().initiateV1("2751d7d9-df79-4412-b4c4-28aaa7075548")\n}',
      },
      go: {
        method: 'client.Mfa.SkID.MobileID.Signature.InitiateV1',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tresponse, err := client.Mfa.SkID.MobileID.Signature.InitiateV1(context.TODO(), "2751d7d9-df79-4412-b4c4-28aaa7075548")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.VerificationCode)\n}\n',
      },
      cli: {
        method: 'signature initiateV1',
        example:
          "plumery mfa:sk-id:mobile-id:signature initiate-v1 \\\n  --session 'My Session' \\\n  --challenge-id 2751d7d9-df79-4412-b4c4-28aaa7075548",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/mfa/sk-id/mobile-id/signature/$CHALLENGE_ID:initiate \\\n    -X POST \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'confirmV1',
    endpoint: '/api/v1/mfa/sk-id/mobile-id/signature/{challengeId}:confirm',
    httpMethod: 'post',
    summary: 'Confirm SK-ID Mobile-ID signing challenge',
    description:
      "Confirms SK-ID Mobile-ID signing challenge.\n\nThis will trigger notification to user's phone with prompt to confirm signing. Then get the signature, verify it and save.\nNote:\nThis endpoint should be polled repeatedly whenever a SK_ID_SIGNING_NOT_YET_COMPLETED_EXCEPTION error response is returned.\n  Continue polling until either:\n    - a successful response (204 No Content) is received, indicating signing has completed, or\n    - a different error response is returned, which means the signing process has failed and polling must stop.",
    stainlessPath: '(resource) mfa.sk-id.mobile-id.signature > (method) confirmV1',
    qualified: 'client.mfa.skID.mobileID.signature.confirmV1',
    params: ['challengeId: string;'],
    markdown:
      "## confirmV1\n\n`client.mfa.skID.mobileID.signature.confirmV1(challengeId: string): void`\n\n**post** `/api/v1/mfa/sk-id/mobile-id/signature/{challengeId}:confirm`\n\nConfirms SK-ID Mobile-ID signing challenge.\n\nThis will trigger notification to user's phone with prompt to confirm signing. Then get the signature, verify it and save.\nNote:\nThis endpoint should be polled repeatedly whenever a SK_ID_SIGNING_NOT_YET_COMPLETED_EXCEPTION error response is returned.\n  Continue polling until either:\n    - a successful response (204 No Content) is received, indicating signing has completed, or\n    - a different error response is returned, which means the signing process has failed and polling must stop.\n\n### Parameters\n\n- `challengeId: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nawait client.mfa.skID.mobileID.signature.confirmV1('2751d7d9-df79-4412-b4c4-28aaa7075548')\n```",
    perLanguage: {
      typescript: {
        method: 'client.mfa.skID.mobileID.signature.confirmV1',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nawait client.mfa.skID.mobileID.signature.confirmV1('2751d7d9-df79-4412-b4c4-28aaa7075548');",
      },
      python: {
        method: 'mfa.sk_id.mobile_id.signature.confirm_v1',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nclient.mfa.sk_id.mobile_id.signature.confirm_v1(\n    "2751d7d9-df79-4412-b4c4-28aaa7075548",\n)',
      },
      java: {
        method: 'mfa().skId().mobileId().signature().confirmV1',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.mfa.skid.mobileid.signature.SignatureConfirmV1Params;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        client.mfa().skId().mobileId().signature().confirmV1("2751d7d9-df79-4412-b4c4-28aaa7075548");\n    }\n}',
      },
      kotlin: {
        method: 'mfa().skId().mobileId().signature().confirmV1',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.mfa.skid.mobileid.signature.SignatureConfirmV1Params\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    client.mfa().skId().mobileId().signature().confirmV1("2751d7d9-df79-4412-b4c4-28aaa7075548")\n}',
      },
      go: {
        method: 'client.Mfa.SkID.MobileID.Signature.ConfirmV1',
        example:
          'package main\n\nimport (\n\t"context"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\terr := client.Mfa.SkID.MobileID.Signature.ConfirmV1(context.TODO(), "2751d7d9-df79-4412-b4c4-28aaa7075548")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
      },
      cli: {
        method: 'signature confirmV1',
        example:
          "plumery mfa:sk-id:mobile-id:signature confirm-v1 \\\n  --session 'My Session' \\\n  --challenge-id 2751d7d9-df79-4412-b4c4-28aaa7075548",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/mfa/sk-id/mobile-id/signature/$CHALLENGE_ID:confirm \\\n    -X POST \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'initiateV2',
    endpoint: '/api/v2/mfa/sk-id/mobile-id/signature/{challengeId}:initiate',
    httpMethod: 'post',
    summary: 'Initiate Mobile-ID signing challenge',
    description:
      'Initiates SK-ID Mobile-ID signing challenge.\n\nThis endpoint initiates the document signing process and returns the current signing session status.\n- When the status is `PENDING_CODE`, the signing session is not fully initialized and the verification code is not present in the response.\n- When the status is `PENDING_SIGNATURE`, the signing session is fully initialized and the response includes a verification code that the end user must confirm in the SK-ID Mobile-ID application.',
    stainlessPath: '(resource) mfa.sk-id.mobile-id.signature > (method) initiateV2',
    qualified: 'client.mfa.skID.mobileID.signature.initiateV2',
    params: ['challengeId: string;'],
    response: "{ status?: 'PENDING_CODE' | 'PENDING_SIGNING'; verificationCode?: string; }",
    markdown:
      "## initiateV2\n\n`client.mfa.skID.mobileID.signature.initiateV2(challengeId: string): { status?: 'PENDING_CODE' | 'PENDING_SIGNING'; verificationCode?: string; }`\n\n**post** `/api/v2/mfa/sk-id/mobile-id/signature/{challengeId}:initiate`\n\nInitiates SK-ID Mobile-ID signing challenge.\n\nThis endpoint initiates the document signing process and returns the current signing session status.\n- When the status is `PENDING_CODE`, the signing session is not fully initialized and the verification code is not present in the response.\n- When the status is `PENDING_SIGNATURE`, the signing session is fully initialized and the response includes a verification code that the end user must confirm in the SK-ID Mobile-ID application.\n\n### Parameters\n\n- `challengeId: string`\n\n### Returns\n\n- `{ status?: 'PENDING_CODE' | 'PENDING_SIGNING'; verificationCode?: string; }`\n\n  - `status?: 'PENDING_CODE' | 'PENDING_SIGNING'`\n  - `verificationCode?: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.mfa.skID.mobileID.signature.initiateV2('2751d7d9-df79-4412-b4c4-28aaa7075548');\n\nconsole.log(response);\n```",
    perLanguage: {
      typescript: {
        method: 'client.mfa.skID.mobileID.signature.initiateV2',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nconst response = await client.mfa.skID.mobileID.signature.initiateV2(\n  '2751d7d9-df79-4412-b4c4-28aaa7075548',\n);\n\nconsole.log(response.status);",
      },
      python: {
        method: 'mfa.sk_id.mobile_id.signature.initiate_v2',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nresponse = client.mfa.sk_id.mobile_id.signature.initiate_v2(\n    "2751d7d9-df79-4412-b4c4-28aaa7075548",\n)\nprint(response.status)',
      },
      java: {
        method: 'mfa().skId().mobileId().signature().initiateV2',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.mfa.skid.mobileid.signature.SignatureInitiateV2Params;\nimport com.plumery.api.models.mfa.skid.mobileid.signature.SignatureInitiateV2Response;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        SignatureInitiateV2Response response = client.mfa().skId().mobileId().signature().initiateV2("2751d7d9-df79-4412-b4c4-28aaa7075548");\n    }\n}',
      },
      kotlin: {
        method: 'mfa().skId().mobileId().signature().initiateV2',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.mfa.skid.mobileid.signature.SignatureInitiateV2Params\nimport com.plumery.api.models.mfa.skid.mobileid.signature.SignatureInitiateV2Response\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val response: SignatureInitiateV2Response = client.mfa().skId().mobileId().signature().initiateV2("2751d7d9-df79-4412-b4c4-28aaa7075548")\n}',
      },
      go: {
        method: 'client.Mfa.SkID.MobileID.Signature.InitiateV2',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tresponse, err := client.Mfa.SkID.MobileID.Signature.InitiateV2(context.TODO(), "2751d7d9-df79-4412-b4c4-28aaa7075548")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.Status)\n}\n',
      },
      cli: {
        method: 'signature initiateV2',
        example:
          "plumery mfa:sk-id:mobile-id:signature initiate-v2 \\\n  --session 'My Session' \\\n  --challenge-id 2751d7d9-df79-4412-b4c4-28aaa7075548",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v2/mfa/sk-id/mobile-id/signature/$CHALLENGE_ID:initiate \\\n    -X POST \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'confirmV2',
    endpoint: '/api/v2/mfa/sk-id/mobile-id/signature/{challengeId}:confirm',
    httpMethod: 'post',
    summary: 'Confirm SK-ID Mobile-ID signing challenge',
    description:
      'Confirms SK-ID Mobile-ID signing challenge.\n\nThis endpoint initiates a signing session by sending a notification to the user’s phone, prompting them to confirm the signing request.\nThe client must then poll this endpoint to track the signing session status until the process is completed or fails.\n\nThe signing session progresses through the following statuses:\n  - `PENDING_CODE`\n    The signing session has been created, but is not fully initialized yet.\n    The verification code is not returned at this stage.\n\n  - `PENDING_SIGNATURE`\n    The signing session is fully initialized.\n    The verification code is returned and the user is expected to confirm the signing on their device.\n\n  - `COMPLETED`\n    The signing has been successfully completed.\n    The signature is verified and saved.\n\nThe client must poll this endpoint repeatedly until one of the following conditions is met:\n  - A 200 OK response is returned with status `COMPLETED`, indicating successful signing\n  - Any other error response is returned, indicating that the signing process has failed and polling must stop',
    stainlessPath: '(resource) mfa.sk-id.mobile-id.signature > (method) confirmV2',
    qualified: 'client.mfa.skID.mobileID.signature.confirmV2',
    params: ['challengeId: string;'],
    response: "{ status?: 'PENDING_CODE' | 'PENDING_SIGNING' | 'COMPLETED'; verificationCode?: string; }",
    markdown:
      "## confirmV2\n\n`client.mfa.skID.mobileID.signature.confirmV2(challengeId: string): { status?: 'PENDING_CODE' | 'PENDING_SIGNING' | 'COMPLETED'; verificationCode?: string; }`\n\n**post** `/api/v2/mfa/sk-id/mobile-id/signature/{challengeId}:confirm`\n\nConfirms SK-ID Mobile-ID signing challenge.\n\nThis endpoint initiates a signing session by sending a notification to the user’s phone, prompting them to confirm the signing request.\nThe client must then poll this endpoint to track the signing session status until the process is completed or fails.\n\nThe signing session progresses through the following statuses:\n  - `PENDING_CODE`\n    The signing session has been created, but is not fully initialized yet.\n    The verification code is not returned at this stage.\n\n  - `PENDING_SIGNATURE`\n    The signing session is fully initialized.\n    The verification code is returned and the user is expected to confirm the signing on their device.\n\n  - `COMPLETED`\n    The signing has been successfully completed.\n    The signature is verified and saved.\n\nThe client must poll this endpoint repeatedly until one of the following conditions is met:\n  - A 200 OK response is returned with status `COMPLETED`, indicating successful signing\n  - Any other error response is returned, indicating that the signing process has failed and polling must stop\n\n### Parameters\n\n- `challengeId: string`\n\n### Returns\n\n- `{ status?: 'PENDING_CODE' | 'PENDING_SIGNING' | 'COMPLETED'; verificationCode?: string; }`\n\n  - `status?: 'PENDING_CODE' | 'PENDING_SIGNING' | 'COMPLETED'`\n  - `verificationCode?: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.mfa.skID.mobileID.signature.confirmV2('2751d7d9-df79-4412-b4c4-28aaa7075548');\n\nconsole.log(response);\n```",
    perLanguage: {
      typescript: {
        method: 'client.mfa.skID.mobileID.signature.confirmV2',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nconst response = await client.mfa.skID.mobileID.signature.confirmV2(\n  '2751d7d9-df79-4412-b4c4-28aaa7075548',\n);\n\nconsole.log(response.status);",
      },
      python: {
        method: 'mfa.sk_id.mobile_id.signature.confirm_v2',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nresponse = client.mfa.sk_id.mobile_id.signature.confirm_v2(\n    "2751d7d9-df79-4412-b4c4-28aaa7075548",\n)\nprint(response.status)',
      },
      java: {
        method: 'mfa().skId().mobileId().signature().confirmV2',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.mfa.skid.mobileid.signature.SignatureConfirmV2Params;\nimport com.plumery.api.models.mfa.skid.mobileid.signature.SignatureConfirmV2Response;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        SignatureConfirmV2Response response = client.mfa().skId().mobileId().signature().confirmV2("2751d7d9-df79-4412-b4c4-28aaa7075548");\n    }\n}',
      },
      kotlin: {
        method: 'mfa().skId().mobileId().signature().confirmV2',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.mfa.skid.mobileid.signature.SignatureConfirmV2Params\nimport com.plumery.api.models.mfa.skid.mobileid.signature.SignatureConfirmV2Response\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val response: SignatureConfirmV2Response = client.mfa().skId().mobileId().signature().confirmV2("2751d7d9-df79-4412-b4c4-28aaa7075548")\n}',
      },
      go: {
        method: 'client.Mfa.SkID.MobileID.Signature.ConfirmV2',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tresponse, err := client.Mfa.SkID.MobileID.Signature.ConfirmV2(context.TODO(), "2751d7d9-df79-4412-b4c4-28aaa7075548")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.Status)\n}\n',
      },
      cli: {
        method: 'signature confirmV2',
        example:
          "plumery mfa:sk-id:mobile-id:signature confirm-v2 \\\n  --session 'My Session' \\\n  --challenge-id 2751d7d9-df79-4412-b4c4-28aaa7075548",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v2/mfa/sk-id/mobile-id/signature/$CHALLENGE_ID:confirm \\\n    -X POST \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'initiate',
    endpoint: '/api/v2/mfa/sk-id/mobile-id/signature/{challengeId}:initiate',
    httpMethod: 'post',
    summary: 'Initiate Mobile-ID signing challenge',
    description:
      'Initiates SK-ID Mobile-ID signing challenge.\n\nThis endpoint initiates the document signing process and returns the current signing session status.\n- When the status is `PENDING_CODE`, the signing session is not fully initialized and the verification code is not present in the response.\n- When the status is `PENDING_SIGNATURE`, the signing session is fully initialized and the response includes a verification code that the end user must confirm in the SK-ID Mobile-ID application.',
    stainlessPath: '(resource) mfa.sk-id.mobile-id.signature > (method) initiate',
    qualified: 'client.mfa.skID.mobileID.signature.initiate',
    perLanguage: {
      typescript: {
        method: 'client.mfa.skID.mobileID.signature.initiate',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nconst response = await client.mfa.skID.mobileID.signature.initiate(\n  '2751d7d9-df79-4412-b4c4-28aaa7075548',\n);\n\nconsole.log(response.status);",
      },
      python: {
        method: 'mfa.sk_id.mobile_id.signature.initiate',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nresponse = client.mfa.sk_id.mobile_id.signature.initiate(\n    "2751d7d9-df79-4412-b4c4-28aaa7075548",\n)\nprint(response.status)',
      },
      java: {
        method: 'mfa().skId().mobileId().signature().initiate',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.mfa.skid.mobileid.signature.SignatureInitiateParams;\nimport com.plumery.api.models.mfa.skid.mobileid.signature.SignatureInitiateResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        SignatureInitiateResponse response = client.mfa().skId().mobileId().signature().initiate("2751d7d9-df79-4412-b4c4-28aaa7075548");\n    }\n}',
      },
      kotlin: {
        method: 'mfa().skId().mobileId().signature().initiate',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.mfa.skid.mobileid.signature.SignatureInitiateParams\nimport com.plumery.api.models.mfa.skid.mobileid.signature.SignatureInitiateResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val response: SignatureInitiateResponse = client.mfa().skId().mobileId().signature().initiate("2751d7d9-df79-4412-b4c4-28aaa7075548")\n}',
      },
      go: {
        method: 'client.Mfa.SkID.MobileID.Signature.Initiate',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tresponse, err := client.Mfa.SkID.MobileID.Signature.Initiate(context.TODO(), "2751d7d9-df79-4412-b4c4-28aaa7075548")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.Status)\n}\n',
      },
      cli: {
        method: 'signature initiate',
        example:
          "plumery mfa:sk-id:mobile-id:signature initiate \\\n  --session 'My Session' \\\n  --challenge-id 2751d7d9-df79-4412-b4c4-28aaa7075548",
      },
    },
  },
  {
    name: 'confirm',
    endpoint: '/api/v2/mfa/sk-id/mobile-id/signature/{challengeId}:confirm',
    httpMethod: 'post',
    summary: 'Confirm SK-ID Mobile-ID signing challenge',
    description:
      'Confirms SK-ID Mobile-ID signing challenge.\n\nThis endpoint initiates a signing session by sending a notification to the user’s phone, prompting them to confirm the signing request.\nThe client must then poll this endpoint to track the signing session status until the process is completed or fails.\n\nThe signing session progresses through the following statuses:\n  - `PENDING_CODE`\n    The signing session has been created, but is not fully initialized yet.\n    The verification code is not returned at this stage.\n\n  - `PENDING_SIGNATURE`\n    The signing session is fully initialized.\n    The verification code is returned and the user is expected to confirm the signing on their device.\n\n  - `COMPLETED`\n    The signing has been successfully completed.\n    The signature is verified and saved.\n\nThe client must poll this endpoint repeatedly until one of the following conditions is met:\n  - A 200 OK response is returned with status `COMPLETED`, indicating successful signing\n  - Any other error response is returned, indicating that the signing process has failed and polling must stop',
    stainlessPath: '(resource) mfa.sk-id.mobile-id.signature > (method) confirm',
    qualified: 'client.mfa.skID.mobileID.signature.confirm',
    perLanguage: {
      typescript: {
        method: 'client.mfa.skID.mobileID.signature.confirm',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nconst response = await client.mfa.skID.mobileID.signature.confirm(\n  '2751d7d9-df79-4412-b4c4-28aaa7075548',\n);\n\nconsole.log(response.status);",
      },
      python: {
        method: 'mfa.sk_id.mobile_id.signature.confirm',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nresponse = client.mfa.sk_id.mobile_id.signature.confirm(\n    "2751d7d9-df79-4412-b4c4-28aaa7075548",\n)\nprint(response.status)',
      },
      java: {
        method: 'mfa().skId().mobileId().signature().confirm',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.mfa.skid.mobileid.signature.SignatureConfirmParams;\nimport com.plumery.api.models.mfa.skid.mobileid.signature.SignatureConfirmResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        SignatureConfirmResponse response = client.mfa().skId().mobileId().signature().confirm("2751d7d9-df79-4412-b4c4-28aaa7075548");\n    }\n}',
      },
      kotlin: {
        method: 'mfa().skId().mobileId().signature().confirm',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.mfa.skid.mobileid.signature.SignatureConfirmParams\nimport com.plumery.api.models.mfa.skid.mobileid.signature.SignatureConfirmResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val response: SignatureConfirmResponse = client.mfa().skId().mobileId().signature().confirm("2751d7d9-df79-4412-b4c4-28aaa7075548")\n}',
      },
      go: {
        method: 'client.Mfa.SkID.MobileID.Signature.Confirm',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tresponse, err := client.Mfa.SkID.MobileID.Signature.Confirm(context.TODO(), "2751d7d9-df79-4412-b4c4-28aaa7075548")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.Status)\n}\n',
      },
      cli: {
        method: 'signature confirm',
        example:
          "plumery mfa:sk-id:mobile-id:signature confirm \\\n  --session 'My Session' \\\n  --challenge-id 2751d7d9-df79-4412-b4c4-28aaa7075548",
      },
    },
  },
  {
    name: 'retrieve',
    endpoint: '/api/v1/users/me',
    httpMethod: 'get',
    summary: 'Retrieve User Profile',
    description: 'Rerrieves the profile of the current authenticated user',
    stainlessPath: '(resource) users.me > (method) retrieve',
    qualified: 'client.users.me.retrieve',
    params: ['plmr-user-action?: boolean;'],
    response:
      '{ additionalDetails?: object; countryCode?: string; email?: string; firstName?: string; hasAvatar?: boolean; lastName?: string; personalId?: string; phoneNumber?: string; preferredLanguage?: string; preferredName?: string; username?: string; }',
    markdown:
      "## retrieve\n\n`client.users.me.retrieve(plmr-user-action?: boolean): { additionalDetails?: object; countryCode?: string; email?: string; firstName?: string; hasAvatar?: boolean; lastName?: string; personalId?: string; phoneNumber?: string; preferredLanguage?: string; preferredName?: string; username?: string; }`\n\n**get** `/api/v1/users/me`\n\nRerrieves the profile of the current authenticated user\n\n### Parameters\n\n- `plmr-user-action?: boolean`\n\n### Returns\n\n- `{ additionalDetails?: object; countryCode?: string; email?: string; firstName?: string; hasAvatar?: boolean; lastName?: string; personalId?: string; phoneNumber?: string; preferredLanguage?: string; preferredName?: string; username?: string; }`\n\n  - `additionalDetails?: object`\n  - `countryCode?: string`\n  - `email?: string`\n  - `firstName?: string`\n  - `hasAvatar?: boolean`\n  - `lastName?: string`\n  - `personalId?: string`\n  - `phoneNumber?: string`\n  - `preferredLanguage?: string`\n  - `preferredName?: string`\n  - `username?: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst me = await client.users.me.retrieve();\n\nconsole.log(me);\n```",
    perLanguage: {
      typescript: {
        method: 'client.users.me.retrieve',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nconst me = await client.users.me.retrieve();\n\nconsole.log(me.additionalDetails);",
      },
      python: {
        method: 'users.me.retrieve',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nme = client.users.me.retrieve()\nprint(me.additional_details)',
      },
      java: {
        method: 'users().me().retrieve',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.users.me.MeRetrieveParams;\nimport com.plumery.api.models.users.me.MeRetrieveResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        MeRetrieveResponse me = client.users().me().retrieve();\n    }\n}',
      },
      kotlin: {
        method: 'users().me().retrieve',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.users.me.MeRetrieveParams\nimport com.plumery.api.models.users.me.MeRetrieveResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val me: MeRetrieveResponse = client.users().me().retrieve()\n}',
      },
      go: {
        method: 'client.Users.Me.Get',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tme, err := client.Users.Me.Get(context.TODO(), plumery.UserMeGetParams{})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", me.AdditionalDetails)\n}\n',
      },
      cli: {
        method: 'me retrieve',
        example: "plumery users:me retrieve \\\n  --session 'My Session'",
      },
      http: {
        example: 'curl https://api.plumery.com/api/v1/users/me \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'updatePhoneNumber',
    endpoint: '/api/v1/users/me:update-phone-number',
    httpMethod: 'post',
    summary: 'Update Phone Number',
    description:
      "Update the user's phone number.\n\nDepending on the system configuration, this endpoint may either:\n- Require OTP verification: Send a one-time password via SMS to the new phone number. The phone number will be updated after successful verification using the 'Verify Phone Number' endpoint (returns 202 with verification details).\n- Complete immediately: Update the phone number directly without OTP verification (returns 204).",
    stainlessPath: '(resource) users.me > (method) updatePhoneNumber',
    qualified: 'client.users.me.updatePhoneNumber',
    params: ['phoneNumber: string;', 'plmr-user-action?: boolean;'],
    response: "{ verification?: { endpoint?: '/v1/users/me:verify-phone-number'; method?: 'TOTP-SMS'; }; }",
    markdown:
      "## updatePhoneNumber\n\n`client.users.me.updatePhoneNumber(phoneNumber: string, plmr-user-action?: boolean): { verification?: object; }`\n\n**post** `/api/v1/users/me:update-phone-number`\n\nUpdate the user's phone number.\n\nDepending on the system configuration, this endpoint may either:\n- Require OTP verification: Send a one-time password via SMS to the new phone number. The phone number will be updated after successful verification using the 'Verify Phone Number' endpoint (returns 202 with verification details).\n- Complete immediately: Update the phone number directly without OTP verification (returns 204).\n\n### Parameters\n\n- `phoneNumber: string`\n\n- `plmr-user-action?: boolean`\n\n### Returns\n\n- `{ verification?: { endpoint?: '/v1/users/me:verify-phone-number'; method?: 'TOTP-SMS'; }; }`\n  Indicates the next step to take after updating the phone\n\n  - `verification?: { endpoint?: '/v1/users/me:verify-phone-number'; method?: 'TOTP-SMS'; }`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.users.me.updatePhoneNumber({ phoneNumber: 'phoneNumber' });\n\nconsole.log(response);\n```",
    perLanguage: {
      typescript: {
        method: 'client.users.me.updatePhoneNumber',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nconst response = await client.users.me.updatePhoneNumber({ phoneNumber: 'phoneNumber' });\n\nconsole.log(response.verification);",
      },
      python: {
        method: 'users.me.update_phone_number',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nresponse = client.users.me.update_phone_number(\n    phone_number="phoneNumber",\n)\nprint(response.verification)',
      },
      java: {
        method: 'users().me().updatePhoneNumber',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.users.me.MeUpdatePhoneNumberParams;\nimport com.plumery.api.models.users.me.MeUpdatePhoneNumberResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        MeUpdatePhoneNumberParams params = MeUpdatePhoneNumberParams.builder()\n            .phoneNumber("phoneNumber")\n            .build();\n        MeUpdatePhoneNumberResponse response = client.users().me().updatePhoneNumber(params);\n    }\n}',
      },
      kotlin: {
        method: 'users().me().updatePhoneNumber',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.users.me.MeUpdatePhoneNumberParams\nimport com.plumery.api.models.users.me.MeUpdatePhoneNumberResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: MeUpdatePhoneNumberParams = MeUpdatePhoneNumberParams.builder()\n        .phoneNumber("phoneNumber")\n        .build()\n    val response: MeUpdatePhoneNumberResponse = client.users().me().updatePhoneNumber(params)\n}',
      },
      go: {
        method: 'client.Users.Me.UpdatePhoneNumber',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tresponse, err := client.Users.Me.UpdatePhoneNumber(context.TODO(), plumery.UserMeUpdatePhoneNumberParams{\n\t\tPhoneNumber: plumery.F("phoneNumber"),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.Verification)\n}\n',
      },
      cli: {
        method: 'me updatePhoneNumber',
        example:
          "plumery users:me update-phone-number \\\n  --session 'My Session' \\\n  --phone-number phoneNumber",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/users/me:update-phone-number \\\n    -H \'Content-Type: application/json\' \\\n    -H "Cookie: $SESSION" \\\n    -d \'{\n          "phoneNumber": "phoneNumber"\n        }\'',
      },
    },
  },
  {
    name: 'verifyPhoneNumber',
    endpoint: '/api/v1/users/me:verify-phone-number',
    httpMethod: 'post',
    summary: 'Verify Phone Number',
    description:
      'Verifies the one-time password sent to the new phone number.\nThe phone number will be changed once the OTP is verified successfully.\n\nNote: This endpoint is only available when OTP verification is enabled. If OTP verification is disabled, this endpoint will return a 400 error with code OTP_VALIDATION_NOT_REQUIRED.',
    stainlessPath: '(resource) users.me > (method) verifyPhoneNumber',
    qualified: 'client.users.me.verifyPhoneNumber',
    params: ['otp: string;', 'plmr-user-action?: boolean;'],
    markdown:
      "## verifyPhoneNumber\n\n`client.users.me.verifyPhoneNumber(otp: string, plmr-user-action?: boolean): void`\n\n**post** `/api/v1/users/me:verify-phone-number`\n\nVerifies the one-time password sent to the new phone number.\nThe phone number will be changed once the OTP is verified successfully.\n\nNote: This endpoint is only available when OTP verification is enabled. If OTP verification is disabled, this endpoint will return a 400 error with code OTP_VALIDATION_NOT_REQUIRED.\n\n### Parameters\n\n- `otp: string`\n  The One-Time Password (OTP) sent to the phone number for verification\n\n- `plmr-user-action?: boolean`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nawait client.users.me.verifyPhoneNumber({ otp: '123456' })\n```",
    perLanguage: {
      typescript: {
        method: 'client.users.me.verifyPhoneNumber',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nawait client.users.me.verifyPhoneNumber({ otp: '123456' });",
      },
      python: {
        method: 'users.me.verify_phone_number',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nclient.users.me.verify_phone_number(\n    otp="123456",\n)',
      },
      java: {
        method: 'users().me().verifyPhoneNumber',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.users.me.MeVerifyPhoneNumberParams;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        MeVerifyPhoneNumberParams params = MeVerifyPhoneNumberParams.builder()\n            .otp("123456")\n            .build();\n        client.users().me().verifyPhoneNumber(params);\n    }\n}',
      },
      kotlin: {
        method: 'users().me().verifyPhoneNumber',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.users.me.MeVerifyPhoneNumberParams\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: MeVerifyPhoneNumberParams = MeVerifyPhoneNumberParams.builder()\n        .otp("123456")\n        .build()\n    client.users().me().verifyPhoneNumber(params)\n}',
      },
      go: {
        method: 'client.Users.Me.VerifyPhoneNumber',
        example:
          'package main\n\nimport (\n\t"context"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\terr := client.Users.Me.VerifyPhoneNumber(context.TODO(), plumery.UserMeVerifyPhoneNumberParams{\n\t\tOtp: plumery.F("123456"),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
      },
      cli: {
        method: 'me verifyPhoneNumber',
        example: "plumery users:me verify-phone-number \\\n  --session 'My Session' \\\n  --otp 123456",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/users/me:verify-phone-number \\\n    -H \'Content-Type: application/json\' \\\n    -H "Cookie: $SESSION" \\\n    -d \'{\n          "otp": "123456"\n        }\'',
      },
    },
  },
  {
    name: 'updateEmailAddress',
    endpoint: '/api/v1/users/me:update-email-address',
    httpMethod: 'post',
    summary: 'Update Email Address',
    description:
      "Update the user's email address.\n\nDepending on the system configuration, this endpoint may either:\n- Require OTP verification: Send a one-time password to the new email address. The email address will be updated after successful verification using the 'Verify Email Address' endpoint (returns 202 with verification details).\n- Complete immediately: Update the email address directly without OTP verification (returns 204).",
    stainlessPath: '(resource) users.me > (method) updateEmailAddress',
    qualified: 'client.users.me.updateEmailAddress',
    params: ['emailAddress: string;', 'plmr-user-action?: boolean;'],
    response:
      "{ verification?: { endpoint?: '/v1/users/me:verify-email-address'; method?: 'TOTP-EMAIL'; }; }",
    markdown:
      "## updateEmailAddress\n\n`client.users.me.updateEmailAddress(emailAddress: string, plmr-user-action?: boolean): { verification?: object; }`\n\n**post** `/api/v1/users/me:update-email-address`\n\nUpdate the user's email address.\n\nDepending on the system configuration, this endpoint may either:\n- Require OTP verification: Send a one-time password to the new email address. The email address will be updated after successful verification using the 'Verify Email Address' endpoint (returns 202 with verification details).\n- Complete immediately: Update the email address directly without OTP verification (returns 204).\n\n### Parameters\n\n- `emailAddress: string`\n\n- `plmr-user-action?: boolean`\n\n### Returns\n\n- `{ verification?: { endpoint?: '/v1/users/me:verify-email-address'; method?: 'TOTP-EMAIL'; }; }`\n  Indicates the next step to take after updating the email\n\n  - `verification?: { endpoint?: '/v1/users/me:verify-email-address'; method?: 'TOTP-EMAIL'; }`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.users.me.updateEmailAddress({ emailAddress: 'emailAddress' });\n\nconsole.log(response);\n```",
    perLanguage: {
      typescript: {
        method: 'client.users.me.updateEmailAddress',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nconst response = await client.users.me.updateEmailAddress({ emailAddress: 'emailAddress' });\n\nconsole.log(response.verification);",
      },
      python: {
        method: 'users.me.update_email_address',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nresponse = client.users.me.update_email_address(\n    email_address="emailAddress",\n)\nprint(response.verification)',
      },
      java: {
        method: 'users().me().updateEmailAddress',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.users.me.MeUpdateEmailAddressParams;\nimport com.plumery.api.models.users.me.MeUpdateEmailAddressResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        MeUpdateEmailAddressParams params = MeUpdateEmailAddressParams.builder()\n            .emailAddress("emailAddress")\n            .build();\n        MeUpdateEmailAddressResponse response = client.users().me().updateEmailAddress(params);\n    }\n}',
      },
      kotlin: {
        method: 'users().me().updateEmailAddress',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.users.me.MeUpdateEmailAddressParams\nimport com.plumery.api.models.users.me.MeUpdateEmailAddressResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: MeUpdateEmailAddressParams = MeUpdateEmailAddressParams.builder()\n        .emailAddress("emailAddress")\n        .build()\n    val response: MeUpdateEmailAddressResponse = client.users().me().updateEmailAddress(params)\n}',
      },
      go: {
        method: 'client.Users.Me.UpdateEmailAddress',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tresponse, err := client.Users.Me.UpdateEmailAddress(context.TODO(), plumery.UserMeUpdateEmailAddressParams{\n\t\tEmailAddress: plumery.F("emailAddress"),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.Verification)\n}\n',
      },
      cli: {
        method: 'me updateEmailAddress',
        example:
          "plumery users:me update-email-address \\\n  --session 'My Session' \\\n  --email-address emailAddress",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/users/me:update-email-address \\\n    -H \'Content-Type: application/json\' \\\n    -H "Cookie: $SESSION" \\\n    -d \'{\n          "emailAddress": "emailAddress"\n        }\'',
      },
    },
  },
  {
    name: 'verifyEmailAddress',
    endpoint: '/api/v1/users/me:verify-email-address',
    httpMethod: 'post',
    summary: 'Verify Email Address',
    description:
      'Verifies the one-time password sent to the new email address.\nThe email address will be changed once the OTP is verified successfully.\n\nNote: This endpoint is only available when OTP verification is enabled. If OTP verification is disabled, this endpoint will return a 400 error with code OTP_VALIDATION_NOT_REQUIRED.',
    stainlessPath: '(resource) users.me > (method) verifyEmailAddress',
    qualified: 'client.users.me.verifyEmailAddress',
    params: ['otp: string;', 'plmr-user-action?: boolean;'],
    markdown:
      "## verifyEmailAddress\n\n`client.users.me.verifyEmailAddress(otp: string, plmr-user-action?: boolean): void`\n\n**post** `/api/v1/users/me:verify-email-address`\n\nVerifies the one-time password sent to the new email address.\nThe email address will be changed once the OTP is verified successfully.\n\nNote: This endpoint is only available when OTP verification is enabled. If OTP verification is disabled, this endpoint will return a 400 error with code OTP_VALIDATION_NOT_REQUIRED.\n\n### Parameters\n\n- `otp: string`\n  The One-Time Password (OTP) sent to the email address for verification\n\n- `plmr-user-action?: boolean`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nawait client.users.me.verifyEmailAddress({ otp: '123456' })\n```",
    perLanguage: {
      typescript: {
        method: 'client.users.me.verifyEmailAddress',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nawait client.users.me.verifyEmailAddress({ otp: '123456' });",
      },
      python: {
        method: 'users.me.verify_email_address',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nclient.users.me.verify_email_address(\n    otp="123456",\n)',
      },
      java: {
        method: 'users().me().verifyEmailAddress',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.users.me.MeVerifyEmailAddressParams;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        MeVerifyEmailAddressParams params = MeVerifyEmailAddressParams.builder()\n            .otp("123456")\n            .build();\n        client.users().me().verifyEmailAddress(params);\n    }\n}',
      },
      kotlin: {
        method: 'users().me().verifyEmailAddress',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.users.me.MeVerifyEmailAddressParams\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: MeVerifyEmailAddressParams = MeVerifyEmailAddressParams.builder()\n        .otp("123456")\n        .build()\n    client.users().me().verifyEmailAddress(params)\n}',
      },
      go: {
        method: 'client.Users.Me.VerifyEmailAddress',
        example:
          'package main\n\nimport (\n\t"context"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\terr := client.Users.Me.VerifyEmailAddress(context.TODO(), plumery.UserMeVerifyEmailAddressParams{\n\t\tOtp: plumery.F("123456"),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
      },
      cli: {
        method: 'me verifyEmailAddress',
        example: "plumery users:me verify-email-address \\\n  --session 'My Session' \\\n  --otp 123456",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/users/me:verify-email-address \\\n    -H \'Content-Type: application/json\' \\\n    -H "Cookie: $SESSION" \\\n    -d \'{\n          "otp": "123456"\n        }\'',
      },
    },
  },
  {
    name: 'updatePassword',
    endpoint: '/api/v1/users/me:update-password',
    httpMethod: 'post',
    summary: 'Update password',
    description:
      'This endpoint is used to initiate the process of password update, in case the user has decided to change their password for various reasons. Examples: they suspect it was compromised, they change once a year, etc..',
    stainlessPath: '(resource) users.me > (method) updatePassword',
    qualified: 'client.users.me.updatePassword',
    params: ['newPassword?: string;', 'plmr-user-action?: boolean;'],
    markdown:
      "## updatePassword\n\n`client.users.me.updatePassword(newPassword?: string, plmr-user-action?: boolean): void`\n\n**post** `/api/v1/users/me:update-password`\n\nThis endpoint is used to initiate the process of password update, in case the user has decided to change their password for various reasons. Examples: they suspect it was compromised, they change once a year, etc..\n\n### Parameters\n\n- `newPassword?: string`\n\n- `plmr-user-action?: boolean`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nawait client.users.me.updatePassword()\n```",
    perLanguage: {
      typescript: {
        method: 'client.users.me.updatePassword',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nawait client.users.me.updatePassword();",
      },
      python: {
        method: 'users.me.update_password',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nclient.users.me.update_password()',
      },
      java: {
        method: 'users().me().updatePassword',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.users.me.MeUpdatePasswordParams;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        client.users().me().updatePassword();\n    }\n}',
      },
      kotlin: {
        method: 'users().me().updatePassword',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.users.me.MeUpdatePasswordParams\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    client.users().me().updatePassword()\n}',
      },
      go: {
        method: 'client.Users.Me.UpdatePassword',
        example:
          'package main\n\nimport (\n\t"context"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\terr := client.Users.Me.UpdatePassword(context.TODO(), plumery.UserMeUpdatePasswordParams{})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
      },
      cli: {
        method: 'me updatePassword',
        example: "plumery users:me update-password \\\n  --session 'My Session'",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/users/me:update-password \\\n    -X POST \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'updatePreferredLanguage',
    endpoint: '/api/v1/users/me:update-preferred-language',
    httpMethod: 'post',
    summary: 'Update Preferred Language',
    description:
      "This endpoint is used to update user's preferred language, supported by the bank. In that case the notifications will be sent using language preferences or default language, set by the bank",
    stainlessPath: '(resource) users.me > (method) updatePreferredLanguage',
    qualified: 'client.users.me.updatePreferredLanguage',
    params: ['preferredLanguage?: string;', 'plmr-user-action?: boolean;'],
    markdown:
      "## updatePreferredLanguage\n\n`client.users.me.updatePreferredLanguage(preferredLanguage?: string, plmr-user-action?: boolean): void`\n\n**post** `/api/v1/users/me:update-preferred-language`\n\nThis endpoint is used to update user's preferred language, supported by the bank. In that case the notifications will be sent using language preferences or default language, set by the bank\n\n### Parameters\n\n- `preferredLanguage?: string`\n\n- `plmr-user-action?: boolean`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nawait client.users.me.updatePreferredLanguage()\n```",
    perLanguage: {
      typescript: {
        method: 'client.users.me.updatePreferredLanguage',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nawait client.users.me.updatePreferredLanguage();",
      },
      python: {
        method: 'users.me.update_preferred_language',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nclient.users.me.update_preferred_language()',
      },
      java: {
        method: 'users().me().updatePreferredLanguage',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.users.me.MeUpdatePreferredLanguageParams;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        client.users().me().updatePreferredLanguage();\n    }\n}',
      },
      kotlin: {
        method: 'users().me().updatePreferredLanguage',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.users.me.MeUpdatePreferredLanguageParams\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    client.users().me().updatePreferredLanguage()\n}',
      },
      go: {
        method: 'client.Users.Me.UpdatePreferredLanguage',
        example:
          'package main\n\nimport (\n\t"context"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\terr := client.Users.Me.UpdatePreferredLanguage(context.TODO(), plumery.UserMeUpdatePreferredLanguageParams{})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
      },
      cli: {
        method: 'me updatePreferredLanguage',
        example: "plumery users:me update-preferred-language \\\n  --session 'My Session'",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/users/me:update-preferred-language \\\n    -X POST \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'retrieve',
    endpoint: '/api/v1/users/me/session',
    httpMethod: 'get',
    summary: 'Get Session TTL',
    description: 'Get the time-to-live (TTL) of the session in seconds.',
    stainlessPath: '(resource) users.me.sessions > (method) retrieve',
    qualified: 'client.users.me.sessions.retrieve',
    params: ['plmr-user-action?: boolean;'],
    response: '{ ttl?: number; }',
    markdown:
      "## retrieve\n\n`client.users.me.sessions.retrieve(plmr-user-action?: boolean): { ttl?: number; }`\n\n**get** `/api/v1/users/me/session`\n\nGet the time-to-live (TTL) of the session in seconds.\n\n### Parameters\n\n- `plmr-user-action?: boolean`\n\n### Returns\n\n- `{ ttl?: number; }`\n  The response object for the session TTL\n\n  - `ttl?: number`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst session = await client.users.me.sessions.retrieve();\n\nconsole.log(session);\n```",
    perLanguage: {
      typescript: {
        method: 'client.users.me.sessions.retrieve',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nconst session = await client.users.me.sessions.retrieve();\n\nconsole.log(session.ttl);",
      },
      python: {
        method: 'users.me.sessions.retrieve',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nsession = client.users.me.sessions.retrieve()\nprint(session.ttl)',
      },
      java: {
        method: 'users().me().sessions().retrieve',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.users.me.sessions.SessionRetrieveParams;\nimport com.plumery.api.models.users.me.sessions.SessionRetrieveResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        SessionRetrieveResponse session = client.users().me().sessions().retrieve();\n    }\n}',
      },
      kotlin: {
        method: 'users().me().sessions().retrieve',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.users.me.sessions.SessionRetrieveParams\nimport com.plumery.api.models.users.me.sessions.SessionRetrieveResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val session: SessionRetrieveResponse = client.users().me().sessions().retrieve()\n}',
      },
      go: {
        method: 'client.Users.Me.Sessions.Get',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tsession, err := client.Users.Me.Sessions.Get(context.TODO(), plumery.UserMeSessionGetParams{})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", session.Ttl)\n}\n',
      },
      cli: {
        method: 'sessions retrieve',
        example: "plumery users:me:sessions retrieve \\\n  --session 'My Session'",
      },
      http: {
        example: 'curl https://api.plumery.com/api/v1/users/me/session \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'extend',
    endpoint: '/api/v1/users/me/session:extend',
    httpMethod: 'post',
    summary: 'Extend Session',
    description: 'Extends the session of the user with the default session value.',
    stainlessPath: '(resource) users.me.sessions > (method) extend',
    qualified: 'client.users.me.sessions.extend',
    params: ['plmr-user-action?: boolean;'],
    markdown:
      "## extend\n\n`client.users.me.sessions.extend(plmr-user-action?: boolean): void`\n\n**post** `/api/v1/users/me/session:extend`\n\nExtends the session of the user with the default session value.\n\n### Parameters\n\n- `plmr-user-action?: boolean`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nawait client.users.me.sessions.extend()\n```",
    perLanguage: {
      typescript: {
        method: 'client.users.me.sessions.extend',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nawait client.users.me.sessions.extend();",
      },
      python: {
        method: 'users.me.sessions.extend',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nclient.users.me.sessions.extend()',
      },
      java: {
        method: 'users().me().sessions().extend',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.users.me.sessions.SessionExtendParams;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        client.users().me().sessions().extend();\n    }\n}',
      },
      kotlin: {
        method: 'users().me().sessions().extend',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.users.me.sessions.SessionExtendParams\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    client.users().me().sessions().extend()\n}',
      },
      go: {
        method: 'client.Users.Me.Sessions.Extend',
        example:
          'package main\n\nimport (\n\t"context"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\terr := client.Users.Me.Sessions.Extend(context.TODO(), plumery.UserMeSessionExtendParams{})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
      },
      cli: {
        method: 'sessions extend',
        example: "plumery users:me:sessions extend \\\n  --session 'My Session'",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/users/me/session:extend \\\n    -X POST \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'retrieve',
    endpoint: '/api/v1/users/me/avatar',
    httpMethod: 'get',
    summary: 'Get User Avatar',
    description: 'Retrieve the avatar of the authenticated user.',
    stainlessPath: '(resource) users.me.avatar > (method) retrieve',
    qualified: 'client.users.me.avatar.retrieve',
    params: ['plmr-user-action?: boolean;'],
    response: 'string',
    markdown:
      "## retrieve\n\n`client.users.me.avatar.retrieve(plmr-user-action?: boolean): string`\n\n**get** `/api/v1/users/me/avatar`\n\nRetrieve the avatar of the authenticated user.\n\n### Parameters\n\n- `plmr-user-action?: boolean`\n\n### Returns\n\n- `string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst avatar = await client.users.me.avatar.retrieve();\n\nconsole.log(avatar);\n\nconst content = await avatar.blob()\nconsole.log(content)\n```",
    perLanguage: {
      typescript: {
        method: 'client.users.me.avatar.retrieve',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nconst avatar = await client.users.me.avatar.retrieve();\n\nconsole.log(avatar);\n\nconst content = await avatar.blob();\nconsole.log(content);",
      },
      python: {
        method: 'users.me.avatar.retrieve',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\navatar = client.users.me.avatar.retrieve()\nprint(avatar)\ncontent = avatar.read()\nprint(content)',
      },
      java: {
        method: 'users().me().avatar().retrieve',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.core.http.HttpResponse;\nimport com.plumery.api.models.users.me.avatar.AvatarRetrieveParams;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        HttpResponse avatar = client.users().me().avatar().retrieve();\n    }\n}',
      },
      kotlin: {
        method: 'users().me().avatar().retrieve',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.core.http.HttpResponse\nimport com.plumery.api.models.users.me.avatar.AvatarRetrieveParams\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val avatar: HttpResponse = client.users().me().avatar().retrieve()\n}',
      },
      go: {
        method: 'client.Users.Me.Avatar.Get',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tavatar, err := client.Users.Me.Avatar.Get(context.TODO(), plumery.UserMeAvatarGetParams{})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", avatar)\n}\n',
      },
      cli: {
        method: 'avatar retrieve',
        example: "plumery users:me:avatar retrieve \\\n  --session 'My Session'",
      },
      http: {
        example: 'curl https://api.plumery.com/api/v1/users/me/avatar \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'update',
    endpoint: '/api/v1/users/me/avatar',
    httpMethod: 'put',
    summary: 'Upload User Avatar',
    description: 'Upload a new avatar for the authenticated user.',
    stainlessPath: '(resource) users.me.avatar > (method) update',
    qualified: 'client.users.me.avatar.update',
    params: ['file: string;', 'filename: string;', 'plmr-user-action?: boolean;'],
    markdown:
      "## update\n\n`client.users.me.avatar.update(file: string, filename: string, plmr-user-action?: boolean): void`\n\n**put** `/api/v1/users/me/avatar`\n\nUpload a new avatar for the authenticated user.\n\n### Parameters\n\n- `file: string`\n  The image file to be uploaded (supports JPEG, JPG PNG, WebP)\n\n- `filename: string`\n  The name of the file being uploaded\n\n- `plmr-user-action?: boolean`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nawait client.users.me.avatar.update({ file: fs.createReadStream('path/to/file'), filename: 'filename' })\n```",
    perLanguage: {
      typescript: {
        method: 'client.users.me.avatar.update',
        example:
          "import fs from 'fs';\nimport Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nawait client.users.me.avatar.update({\n  file: fs.createReadStream('path/to/file'),\n  filename: 'filename',\n});",
      },
      python: {
        method: 'users.me.avatar.update',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nclient.users.me.avatar.update(\n    file=b"Example data",\n    filename="filename",\n)',
      },
      java: {
        method: 'users().me().avatar().update',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.users.me.avatar.AvatarUpdateParams;\nimport java.io.ByteArrayInputStream;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        AvatarUpdateParams params = AvatarUpdateParams.builder()\n            .file(new ByteArrayInputStream("Example data".getBytes()))\n            .filename("filename")\n            .build();\n        client.users().me().avatar().update(params);\n    }\n}',
      },
      kotlin: {
        method: 'users().me().avatar().update',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.users.me.avatar.AvatarUpdateParams\nimport java.io.ByteArrayInputStream\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: AvatarUpdateParams = AvatarUpdateParams.builder()\n        .file("Example data".byteInputStream())\n        .filename("filename")\n        .build()\n    client.users().me().avatar().update(params)\n}',
      },
      go: {
        method: 'client.Users.Me.Avatar.Update',
        example:
          'package main\n\nimport (\n\t"bytes"\n\t"context"\n\t"io"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\terr := client.Users.Me.Avatar.Update(context.TODO(), plumery.UserMeAvatarUpdateParams{\n\t\tFile:     plumery.F(io.Reader(bytes.NewBuffer([]byte("Example data")))),\n\t\tFilename: plumery.F("filename"),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
      },
      cli: {
        method: 'avatar update',
        example:
          "plumery users:me:avatar update \\\n  --session 'My Session' \\\n  --file 'Example data' \\\n  --filename filename",
      },
      http: {
        example:
          "curl https://api.plumery.com/api/v1/users/me/avatar \\\n    -X PUT \\\n    -H 'Content-Type: multipart/form-data' \\\n    -H \"Cookie: $SESSION\" \\\n    -F 'file=@/path/to/file' \\\n    -F filename=filename",
      },
    },
  },
  {
    name: 'delete',
    endpoint: '/api/v1/users/me/avatar',
    httpMethod: 'delete',
    summary: 'Delete User Avatar',
    description: 'Delete the avatar of the authenticated user.',
    stainlessPath: '(resource) users.me.avatar > (method) delete',
    qualified: 'client.users.me.avatar.delete',
    params: ['plmr-user-action?: boolean;'],
    markdown:
      "## delete\n\n`client.users.me.avatar.delete(plmr-user-action?: boolean): void`\n\n**delete** `/api/v1/users/me/avatar`\n\nDelete the avatar of the authenticated user.\n\n### Parameters\n\n- `plmr-user-action?: boolean`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nawait client.users.me.avatar.delete()\n```",
    perLanguage: {
      typescript: {
        method: 'client.users.me.avatar.delete',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nawait client.users.me.avatar.delete();",
      },
      python: {
        method: 'users.me.avatar.delete',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nclient.users.me.avatar.delete()',
      },
      java: {
        method: 'users().me().avatar().delete',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.users.me.avatar.AvatarDeleteParams;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        client.users().me().avatar().delete();\n    }\n}',
      },
      kotlin: {
        method: 'users().me().avatar().delete',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.users.me.avatar.AvatarDeleteParams\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    client.users().me().avatar().delete()\n}',
      },
      go: {
        method: 'client.Users.Me.Avatar.Delete',
        example:
          'package main\n\nimport (\n\t"context"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\terr := client.Users.Me.Avatar.Delete(context.TODO(), plumery.UserMeAvatarDeleteParams{})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
      },
      cli: {
        method: 'avatar delete',
        example: "plumery users:me:avatar delete \\\n  --session 'My Session'",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/users/me/avatar \\\n    -X DELETE \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'refreshNotificationsToken',
    endpoint: '/api/v1/me/devices/{deviceId}:refresh-notifications-token',
    httpMethod: 'post',
    summary: 'Update Push Notifications Token for Device',
    description:
      'Register the token received from the push notifications provider for a device.\nThis step is mandatory to enable a specific device to receive push notifications.',
    stainlessPath: '(resource) me.devices > (method) refreshNotificationsToken',
    qualified: 'client.me.devices.refreshNotificationsToken',
    params: [
      'deviceId: string;',
      'pushNotificationsToken: string;',
      'userId: string;',
      'plmr-user-action?: boolean;',
    ],
    markdown:
      "## refreshNotificationsToken\n\n`client.me.devices.refreshNotificationsToken(deviceId: string, pushNotificationsToken: string, userId: string, plmr-user-action?: boolean): void`\n\n**post** `/api/v1/me/devices/{deviceId}:refresh-notifications-token`\n\nRegister the token received from the push notifications provider for a device.\nThis step is mandatory to enable a specific device to receive push notifications.\n\n### Parameters\n\n- `deviceId: string`\n\n- `pushNotificationsToken: string`\n  Device token received from the push notifications provider\n\n\n- `userId: string`\n\n- `plmr-user-action?: boolean`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nawait client.me.devices.refreshNotificationsToken('6878951b-256b-4baa-9e81-ad4c577adc4e', { pushNotificationsToken: 'pushNotificationsToken', userId: 'P' })\n```",
    perLanguage: {
      typescript: {
        method: 'client.me.devices.refreshNotificationsToken',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nawait client.me.devices.refreshNotificationsToken('6878951b-256b-4baa-9e81-ad4c577adc4e', {\n  pushNotificationsToken: 'pushNotificationsToken',\n  userId: 'P',\n});",
      },
      python: {
        method: 'me.devices.refresh_notifications_token',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nclient.me.devices.refresh_notifications_token(\n    device_id="6878951b-256b-4baa-9e81-ad4c577adc4e",\n    push_notifications_token="pushNotificationsToken",\n    user_id="P",\n)',
      },
      java: {
        method: 'me().devices().refreshNotificationsToken',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.me.devices.DeviceRefreshNotificationsTokenParams;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        DeviceRefreshNotificationsTokenParams params = DeviceRefreshNotificationsTokenParams.builder()\n            .deviceId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n            .userId("P")\n            .pushNotificationsToken("pushNotificationsToken")\n            .build();\n        client.me().devices().refreshNotificationsToken(params);\n    }\n}',
      },
      kotlin: {
        method: 'me().devices().refreshNotificationsToken',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.me.devices.DeviceRefreshNotificationsTokenParams\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: DeviceRefreshNotificationsTokenParams = DeviceRefreshNotificationsTokenParams.builder()\n        .deviceId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n        .userId("P")\n        .pushNotificationsToken("pushNotificationsToken")\n        .build()\n    client.me().devices().refreshNotificationsToken(params)\n}',
      },
      go: {
        method: 'client.Me.Devices.RefreshNotificationsToken',
        example:
          'package main\n\nimport (\n\t"context"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\terr := client.Me.Devices.RefreshNotificationsToken(\n\t\tcontext.TODO(),\n\t\t"6878951b-256b-4baa-9e81-ad4c577adc4e",\n\t\tplumery.MeDeviceRefreshNotificationsTokenParams{\n\t\t\tPushNotificationsToken: plumery.F("pushNotificationsToken"),\n\t\t\tUserID:                 plumery.F("P"),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
      },
      cli: {
        method: 'devices refreshNotificationsToken',
        example:
          "plumery me:devices refresh-notifications-token \\\n  --session 'My Session' \\\n  --device-id 6878951b-256b-4baa-9e81-ad4c577adc4e \\\n  --push-notifications-token pushNotificationsToken \\\n  --user-id P",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/me/devices/$DEVICE_ID:refresh-notifications-token \\\n    -H \'Content-Type: application/json\' \\\n    -H "Cookie: $SESSION" \\\n    -d \'{\n          "pushNotificationsToken": "pushNotificationsToken"\n        }\'',
      },
    },
  },
  {
    name: 'logout',
    endpoint: '/api/v1/staff/auth:logout',
    httpMethod: 'post',
    summary: 'Log out the current staff user.',
    description:
      'Terminates the staff user session referenced by the `auth-session` cookie.\nThe session is removed from the upstream session store. The client should drop the `auth-session` cookie locally.\n',
    stainlessPath: '(resource) staff.auth > (method) logout',
    qualified: 'client.staff.auth.logout',
    markdown:
      "## logout\n\n`client.staff.auth.logout(): void`\n\n**post** `/api/v1/staff/auth:logout`\n\nTerminates the staff user session referenced by the `auth-session` cookie.\nThe session is removed from the upstream session store. The client should drop the `auth-session` cookie locally.\n\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nawait client.staff.auth.logout()\n```",
    perLanguage: {
      typescript: {
        method: 'client.staff.auth.logout',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nawait client.staff.auth.logout();",
      },
      python: {
        method: 'staff.auth.logout',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nclient.staff.auth.logout()',
      },
      java: {
        method: 'staff().auth().logout',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.staff.auth.AuthLogoutParams;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        client.staff().auth().logout();\n    }\n}',
      },
      kotlin: {
        method: 'staff().auth().logout',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.staff.auth.AuthLogoutParams\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    client.staff().auth().logout()\n}',
      },
      go: {
        method: 'client.Staff.Auth.Logout',
        example:
          'package main\n\nimport (\n\t"context"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\terr := client.Staff.Auth.Logout(context.TODO())\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
      },
      cli: {
        method: 'auth logout',
        example: "plumery staff:auth logout \\\n  --session 'My Session'",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/staff/auth:logout \\\n    -X POST \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'retrieve',
    endpoint: '/api/v1/staff/me',
    httpMethod: 'get',
    summary: 'Retrieve the currently authenticated staff user.',
    description:
      'Returns the profile of the staff user referenced by the `auth-session` cookie,\nas captured from the Identity Provider during SAML login and held for the lifetime of the session.\n',
    stainlessPath: '(resource) staff.me > (method) retrieve',
    qualified: 'client.staff.me.retrieve',
    response: '{ email?: string; firstName?: string; groups?: string[]; lastName?: string; }',
    markdown:
      "## retrieve\n\n`client.staff.me.retrieve(): { email?: string; firstName?: string; groups?: string[]; lastName?: string; }`\n\n**get** `/api/v1/staff/me`\n\nReturns the profile of the staff user referenced by the `auth-session` cookie,\nas captured from the Identity Provider during SAML login and held for the lifetime of the session.\n\n\n### Returns\n\n- `{ email?: string; firstName?: string; groups?: string[]; lastName?: string; }`\n  Profile details of a staff user, as provided by the IdP (Identity provider) during SAML login.\n\n\n  - `email?: string`\n  - `firstName?: string`\n  - `groups?: string[]`\n  - `lastName?: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst me = await client.staff.me.retrieve();\n\nconsole.log(me);\n```",
    perLanguage: {
      typescript: {
        method: 'client.staff.me.retrieve',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nconst me = await client.staff.me.retrieve();\n\nconsole.log(me.email);",
      },
      python: {
        method: 'staff.me.retrieve',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nme = client.staff.me.retrieve()\nprint(me.email)',
      },
      java: {
        method: 'staff().me().retrieve',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.staff.me.MeRetrieveParams;\nimport com.plumery.api.models.staff.me.MeRetrieveResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        MeRetrieveResponse me = client.staff().me().retrieve();\n    }\n}',
      },
      kotlin: {
        method: 'staff().me().retrieve',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.staff.me.MeRetrieveParams\nimport com.plumery.api.models.staff.me.MeRetrieveResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val me: MeRetrieveResponse = client.staff().me().retrieve()\n}',
      },
      go: {
        method: 'client.Staff.Me.Get',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tme, err := client.Staff.Me.Get(context.TODO())\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", me.Email)\n}\n',
      },
      cli: {
        method: 'me retrieve',
        example: "plumery staff:me retrieve \\\n  --session 'My Session'",
      },
      http: {
        example: 'curl https://api.plumery.com/api/v1/staff/me \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'retrieve',
    endpoint: '/api/v1/staff/me/session',
    httpMethod: 'get',
    summary: 'Retrieve the remaining TTL of the current staff session.',
    description:
      'Returns the remaining time to live (in seconds) of the staff user session referenced by the `auth-session` cookie.\n',
    stainlessPath: '(resource) staff.me.session > (method) retrieve',
    qualified: 'client.staff.me.session.retrieve',
    response: '{ ttl?: number; }',
    markdown:
      "## retrieve\n\n`client.staff.me.session.retrieve(): { ttl?: number; }`\n\n**get** `/api/v1/staff/me/session`\n\nReturns the remaining time to live (in seconds) of the staff user session referenced by the `auth-session` cookie.\n\n\n### Returns\n\n- `{ ttl?: number; }`\n\n  - `ttl?: number`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst session = await client.staff.me.session.retrieve();\n\nconsole.log(session);\n```",
    perLanguage: {
      typescript: {
        method: 'client.staff.me.session.retrieve',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nconst session = await client.staff.me.session.retrieve();\n\nconsole.log(session.ttl);",
      },
      python: {
        method: 'staff.me.session.retrieve',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nsession = client.staff.me.session.retrieve()\nprint(session.ttl)',
      },
      java: {
        method: 'staff().me().session().retrieve',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.staff.me.session.SessionRetrieveParams;\nimport com.plumery.api.models.staff.me.session.SessionRetrieveResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        SessionRetrieveResponse session = client.staff().me().session().retrieve();\n    }\n}',
      },
      kotlin: {
        method: 'staff().me().session().retrieve',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.staff.me.session.SessionRetrieveParams\nimport com.plumery.api.models.staff.me.session.SessionRetrieveResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val session: SessionRetrieveResponse = client.staff().me().session().retrieve()\n}',
      },
      go: {
        method: 'client.Staff.Me.Session.Get',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tsession, err := client.Staff.Me.Session.Get(context.TODO())\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", session.Ttl)\n}\n',
      },
      cli: {
        method: 'session retrieve',
        example: "plumery staff:me:session retrieve \\\n  --session 'My Session'",
      },
      http: {
        example: 'curl https://api.plumery.com/api/v1/staff/me/session \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'extend',
    endpoint: '/api/v1/staff/me/session:extend',
    httpMethod: 'post',
    summary: 'Extend the current staff session.',
    description:
      'Extends the staff user session referenced by the `auth-session` cookie by resetting its TTL to the default session timeout.\n',
    stainlessPath: '(resource) staff.me.session > (method) extend',
    qualified: 'client.staff.me.session.extend',
    markdown:
      "## extend\n\n`client.staff.me.session.extend(): void`\n\n**post** `/api/v1/staff/me/session:extend`\n\nExtends the staff user session referenced by the `auth-session` cookie by resetting its TTL to the default session timeout.\n\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nawait client.staff.me.session.extend()\n```",
    perLanguage: {
      typescript: {
        method: 'client.staff.me.session.extend',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nawait client.staff.me.session.extend();",
      },
      python: {
        method: 'staff.me.session.extend',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nclient.staff.me.session.extend()',
      },
      java: {
        method: 'staff().me().session().extend',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.staff.me.session.SessionExtendParams;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        client.staff().me().session().extend();\n    }\n}',
      },
      kotlin: {
        method: 'staff().me().session().extend',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.staff.me.session.SessionExtendParams\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    client.staff().me().session().extend()\n}',
      },
      go: {
        method: 'client.Staff.Me.Session.Extend',
        example:
          'package main\n\nimport (\n\t"context"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\terr := client.Staff.Me.Session.Extend(context.TODO())\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
      },
      cli: {
        method: 'session extend',
        example: "plumery staff:me:session extend \\\n  --session 'My Session'",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/staff/me/session:extend \\\n    -X POST \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'search',
    endpoint: '/api/v1/staff/audit-trail:search',
    httpMethod: 'post',
    summary: 'Search Audit Trail Events',
    description:
      'Searches audit trail events based on the given criteria.\n\n**Pagination Limits:** \n- The `limit` parameter has a maximum value of 100\n- The sum of `offset` + `limit` cannot exceed 10,000\n\nIf these limits are exceeded, appropriate error responses will be returned.\n',
    stainlessPath: '(resource) staff.audit-trail > (method) search',
    qualified: 'client.staff.auditTrail.search',
    params: [
      'dateFrom: string;',
      'dateTo: string;',
      'limit: number;',
      'offset: number;',
      "filters?: { type: 'CONDITION' | 'GROUP'; };",
      'search?: string;',
      "sortType?: 'ASC' | 'DESC';",
      'plmr-user-action?: boolean;',
      'X-Request-ID?: string;',
    ],
    response:
      "{ events: { eventId: string; eventSource: string; timestamp: string; apiRequestDetails?: { httpMethod?: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE'; requestBody?: string; requestId?: string; uri?: string; }; enrolmentId?: string; eventDescription?: string; eventName?: string; eventOrigin?: 'INTERNAL' | 'EXTERNAL'; eventType?: string; metadata?: string; partyId?: string; payload?: string; responseStatus?: string; responseStatusCode?: number; staffId?: string; staffRoles?: string[]; userAgent?: string; userId?: string; userLocation?: string; userSessionId?: string; }[]; }",
    markdown:
      "## search\n\n`client.staff.auditTrail.search(dateFrom: string, dateTo: string, limit: number, offset: number, filters?: { type: 'CONDITION' | 'GROUP'; }, search?: string, sortType?: 'ASC' | 'DESC', plmr-user-action?: boolean, X-Request-ID?: string): { events: object[]; }`\n\n**post** `/api/v1/staff/audit-trail:search`\n\nSearches audit trail events based on the given criteria.\n\n**Pagination Limits:** \n- The `limit` parameter has a maximum value of 100\n- The sum of `offset` + `limit` cannot exceed 10,000\n\nIf these limits are exceeded, appropriate error responses will be returned.\n\n\n### Parameters\n\n- `dateFrom: string`\n  Start date (inclusive) for filtering events.\n\n\n- `dateTo: string`\n  End date (inclusive) for filtering events.\n\n\n- `limit: number`\n  The maximum number of items to return.\n\n- `offset: number`\n  The number of items to skip (for pagination).\n\n- `filters?: { type: 'CONDITION' | 'GROUP'; }`\n  Base type for condition nodes (either group or leaf condition).\n  - `type: 'CONDITION' | 'GROUP'`\n    Node type discriminator (\"CONDITION\" or \"GROUP\").\n\n- `search?: string`\n  A free-text search string used to match content across multiple fields.\n\n\n- `sortType?: 'ASC' | 'DESC'`\n  Sort order for events based on their timestamp.\n\n- `plmr-user-action?: boolean`\n\n- `X-Request-ID?: string`\n\n### Returns\n\n- `{ events: { eventId: string; eventSource: string; timestamp: string; apiRequestDetails?: { httpMethod?: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE'; requestBody?: string; requestId?: string; uri?: string; }; enrolmentId?: string; eventDescription?: string; eventName?: string; eventOrigin?: 'INTERNAL' | 'EXTERNAL'; eventType?: string; metadata?: string; partyId?: string; payload?: string; responseStatus?: string; responseStatusCode?: number; staffId?: string; staffRoles?: string[]; userAgent?: string; userId?: string; userLocation?: string; userSessionId?: string; }[]; }`\n  List of events matching the search criteria.\n\n\n  - `events: { eventId: string; eventSource: string; timestamp: string; apiRequestDetails?: { httpMethod?: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE'; requestBody?: string; requestId?: string; uri?: string; }; enrolmentId?: string; eventDescription?: string; eventName?: string; eventOrigin?: 'INTERNAL' | 'EXTERNAL'; eventType?: string; metadata?: string; partyId?: string; payload?: string; responseStatus?: string; responseStatusCode?: number; staffId?: string; staffRoles?: string[]; userAgent?: string; userId?: string; userLocation?: string; userSessionId?: string; }[]`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.staff.auditTrail.search({\n  dateFrom: '2019-12-27',\n  dateTo: '2019-12-27',\n  limit: 10,\n  offset: 0,\n});\n\nconsole.log(response);\n```",
    perLanguage: {
      typescript: {
        method: 'client.staff.auditTrail.search',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nconst response = await client.staff.auditTrail.search({\n  dateFrom: '2019-12-27',\n  dateTo: '2019-12-27',\n  limit: 10,\n  offset: 0,\n});\n\nconsole.log(response.events);",
      },
      python: {
        method: 'staff.audit_trail.search',
        example:
          'from datetime import date\nfrom plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nresponse = client.staff.audit_trail.search(\n    date_from=date.fromisoformat("2019-12-27"),\n    date_to=date.fromisoformat("2019-12-27"),\n    limit=10,\n    offset=0,\n)\nprint(response.events)',
      },
      java: {
        method: 'staff().auditTrail().search',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.staff.audittrail.AuditTrailSearchParams;\nimport com.plumery.api.models.staff.audittrail.AuditTrailSearchResponse;\nimport java.time.LocalDate;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        AuditTrailSearchParams params = AuditTrailSearchParams.builder()\n            .dateFrom(LocalDate.parse("2019-12-27"))\n            .dateTo(LocalDate.parse("2019-12-27"))\n            .limit(10)\n            .offset(0)\n            .build();\n        AuditTrailSearchResponse response = client.staff().auditTrail().search(params);\n    }\n}',
      },
      kotlin: {
        method: 'staff().auditTrail().search',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.staff.audittrail.AuditTrailSearchParams\nimport com.plumery.api.models.staff.audittrail.AuditTrailSearchResponse\nimport java.time.LocalDate\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: AuditTrailSearchParams = AuditTrailSearchParams.builder()\n        .dateFrom(LocalDate.parse("2019-12-27"))\n        .dateTo(LocalDate.parse("2019-12-27"))\n        .limit(10)\n        .offset(0)\n        .build()\n    val response: AuditTrailSearchResponse = client.staff().auditTrail().search(params)\n}',
      },
      go: {
        method: 'client.Staff.AuditTrail.Search',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\t"time"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tresponse, err := client.Staff.AuditTrail.Search(context.TODO(), plumery.StaffAuditTrailSearchParams{\n\t\tDateFrom: plumery.F(time.Now()),\n\t\tDateTo:   plumery.F(time.Now()),\n\t\tLimit:    plumery.F(int64(10)),\n\t\tOffset:   plumery.F(int64(0)),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response.Events)\n}\n',
      },
      cli: {
        method: 'audit-trail search',
        example:
          "plumery staff:audit-trail search \\\n  --session 'My Session' \\\n  --date-from \"'2019-12-27'\" \\\n  --date-to \"'2019-12-27'\" \\\n  --limit 10 \\\n  --offset 0",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/staff/audit-trail:search \\\n    -H \'Content-Type: application/json\' \\\n    -H "Cookie: $SESSION" \\\n    -d \'{\n          "dateFrom": "2019-12-27",\n          "dateTo": "2019-12-27",\n          "limit": 10,\n          "offset": 0\n        }\'',
      },
    },
  },
  {
    name: 'export',
    endpoint: '/api/v1/staff/audit-trail:export',
    httpMethod: 'post',
    summary: 'Export Audit Trail Events',
    description:
      'Exports audit trail search results as a downloadable CSV or JSON file, depending on the requested format.\n',
    stainlessPath: '(resource) staff.audit-trail > (method) export',
    qualified: 'client.staff.auditTrail.export',
    params: [
      'dateFrom: string;',
      'dateTo: string;',
      "format?: 'csv' | 'json';",
      "filters?: { type: 'CONDITION' | 'GROUP'; };",
      'search?: string;',
      "sortType?: 'ASC' | 'DESC';",
      'plmr-user-action?: boolean;',
      'X-Request-ID?: string;',
    ],
    response: 'string',
    markdown:
      "## export\n\n`client.staff.auditTrail.export(dateFrom: string, dateTo: string, format?: 'csv' | 'json', filters?: { type: 'CONDITION' | 'GROUP'; }, search?: string, sortType?: 'ASC' | 'DESC', plmr-user-action?: boolean, X-Request-ID?: string): string`\n\n**post** `/api/v1/staff/audit-trail:export`\n\nExports audit trail search results as a downloadable CSV or JSON file, depending on the requested format.\n\n\n### Parameters\n\n- `dateFrom: string`\n  Start date (inclusive) for filtering events.\n\n\n- `dateTo: string`\n  End date (inclusive) for filtering events.\n\n\n- `format?: 'csv' | 'json'`\n  Output format of the export\n\n- `filters?: { type: 'CONDITION' | 'GROUP'; }`\n  Base type for condition nodes (either group or leaf condition).\n  - `type: 'CONDITION' | 'GROUP'`\n    Node type discriminator (\"CONDITION\" or \"GROUP\").\n\n- `search?: string`\n  A free-text search string used to match content across multiple fields.\n\n\n- `sortType?: 'ASC' | 'DESC'`\n  Sort order for events based on their timestamp.\n\n- `plmr-user-action?: boolean`\n\n- `X-Request-ID?: string`\n\n### Returns\n\n- `string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst response = await client.staff.auditTrail.export({ dateFrom: '2019-12-27', dateTo: '2019-12-27' });\n\nconsole.log(response);\n```",
    perLanguage: {
      typescript: {
        method: 'client.staff.auditTrail.export',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nconst response = await client.staff.auditTrail.export({\n  dateFrom: '2019-12-27',\n  dateTo: '2019-12-27',\n});\n\nconsole.log(response);",
      },
      python: {
        method: 'staff.audit_trail.export',
        example:
          'from datetime import date\nfrom plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nresponse = client.staff.audit_trail.export(\n    date_from=date.fromisoformat("2019-12-27"),\n    date_to=date.fromisoformat("2019-12-27"),\n)\nprint(response)',
      },
      java: {
        method: 'staff().auditTrail().export',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.staff.audittrail.AuditTrailExportParams;\nimport java.time.LocalDate;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        AuditTrailExportParams params = AuditTrailExportParams.builder()\n            .dateFrom(LocalDate.parse("2019-12-27"))\n            .dateTo(LocalDate.parse("2019-12-27"))\n            .build();\n        String response = client.staff().auditTrail().export(params);\n    }\n}',
      },
      kotlin: {
        method: 'staff().auditTrail().export',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.staff.audittrail.AuditTrailExportParams\nimport java.time.LocalDate\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: AuditTrailExportParams = AuditTrailExportParams.builder()\n        .dateFrom(LocalDate.parse("2019-12-27"))\n        .dateTo(LocalDate.parse("2019-12-27"))\n        .build()\n    val response: String = client.staff().auditTrail().export(params)\n}',
      },
      go: {
        method: 'client.Staff.AuditTrail.Export',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\t"time"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tresponse, err := client.Staff.AuditTrail.Export(context.TODO(), plumery.StaffAuditTrailExportParams{\n\t\tDateFrom: plumery.F(time.Now()),\n\t\tDateTo:   plumery.F(time.Now()),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", response)\n}\n',
      },
      cli: {
        method: 'audit-trail export',
        example:
          "plumery staff:audit-trail export \\\n  --session 'My Session' \\\n  --date-from \"'2019-12-27'\" \\\n  --date-to \"'2019-12-27'\"",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/staff/audit-trail:export \\\n    -H \'Content-Type: application/json\' \\\n    -H "Cookie: $SESSION" \\\n    -d \'{\n          "dateFrom": "2019-12-27",\n          "dateTo": "2019-12-27"\n        }\'',
      },
    },
  },
  {
    name: 'list',
    endpoint: '/api/v1/staff/users',
    httpMethod: 'get',
    summary: 'List Bank Users',
    description: 'Allows retrieval of all bank users.',
    stainlessPath: '(resource) staff.users > (method) list',
    qualified: 'client.staff.users.list',
    params: [
      'countryCode?: string;',
      'email?: string;',
      'firstName?: string;',
      'lastName?: string;',
      'limit?: number;',
      'offset?: number;',
      'personalId?: string;',
      'phone?: string;',
      'username?: string;',
      "userState?: 'ACTIVE' | 'INACTIVE';",
      'plmr-staff-action?: boolean;',
    ],
    response:
      "{ count?: number; items?: { id?: string; countryCode?: string; email?: string; firstName?: string; hasAvatar?: boolean; lastName?: string; personalId?: string; phoneNumber?: string; preferredLanguage?: string; preferredName?: string; username?: string; userState?: 'ACTIVE' | 'INACTIVE'; }[]; }",
    markdown:
      "## list\n\n`client.staff.users.list(countryCode?: string, email?: string, firstName?: string, lastName?: string, limit?: number, offset?: number, personalId?: string, phone?: string, username?: string, userState?: 'ACTIVE' | 'INACTIVE', plmr-staff-action?: boolean): { count?: number; items?: object[]; }`\n\n**get** `/api/v1/staff/users`\n\nAllows retrieval of all bank users.\n\n### Parameters\n\n- `countryCode?: string`\n  Nation with its own government. ISO 3166, Alpha-2 code, it needs to be exact match.\n\n\n- `email?: string`\n  User's email address, used fo filter bank users, partial email can also be provided.\n\n\n- `firstName?: string`\n  User's first name, used fo filter bank users, partial name can also be provided.\n\n\n- `lastName?: string`\n  User's last name, used fo filter bank users, partial name can also be provided.\n\n\n- `limit?: number`\n  The maximum number of results to return (pagination limit).\n\n\n- `offset?: number`\n  The position of the first result to be returned (pagination offset).\n\n\n- `personalId?: string`\n  The personal id of the user, it needs to be exact match.\n\n\n- `phone?: string`\n  User's phone number used fo filter bank users, it needs to be exact match, partial match is not supported. </br>\nThe phone format is should be in E.164 format, e.g. +15555555555.\n\n\n- `username?: string`\n  User's username, used fo filter bank users, partial username can also be provided.\n\n\n- `userState?: 'ACTIVE' | 'INACTIVE'`\n  User's current state, used fo filter bank users, exact state match needs to be provided.\n\n- `plmr-staff-action?: boolean`\n\n### Returns\n\n- `{ count?: number; items?: { id?: string; countryCode?: string; email?: string; firstName?: string; hasAvatar?: boolean; lastName?: string; personalId?: string; phoneNumber?: string; preferredLanguage?: string; preferredName?: string; username?: string; userState?: 'ACTIVE' | 'INACTIVE'; }[]; }`\n\n  - `count?: number`\n  - `items?: { id?: string; countryCode?: string; email?: string; firstName?: string; hasAvatar?: boolean; lastName?: string; personalId?: string; phoneNumber?: string; preferredLanguage?: string; preferredName?: string; username?: string; userState?: 'ACTIVE' | 'INACTIVE'; }[]`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst users = await client.staff.users.list();\n\nconsole.log(users);\n```",
    perLanguage: {
      typescript: {
        method: 'client.staff.users.list',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nconst users = await client.staff.users.list();\n\nconsole.log(users.count);",
      },
      python: {
        method: 'staff.users.list',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nusers = client.staff.users.list()\nprint(users.count)',
      },
      java: {
        method: 'staff().users().list',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.staff.users.UserListParams;\nimport com.plumery.api.models.staff.users.UserListResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        UserListResponse users = client.staff().users().list();\n    }\n}',
      },
      kotlin: {
        method: 'staff().users().list',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.staff.users.UserListParams\nimport com.plumery.api.models.staff.users.UserListResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val users: UserListResponse = client.staff().users().list()\n}',
      },
      go: {
        method: 'client.Staff.Users.List',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tusers, err := client.Staff.Users.List(context.TODO(), plumery.StaffUserListParams{})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", users.Count)\n}\n',
      },
      cli: {
        method: 'users list',
        example: "plumery staff:users list \\\n  --session 'My Session'",
      },
      http: {
        example: 'curl https://api.plumery.com/api/v1/staff/users \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'retrieve',
    endpoint: '/api/v1/staff/users/{userId}',
    httpMethod: 'get',
    summary: 'Get bank user details',
    description: 'Retrieve details of a specific bank user.',
    stainlessPath: '(resource) staff.users > (method) retrieve',
    qualified: 'client.staff.users.retrieve',
    params: ['userId: string;', 'plmr-staff-action?: boolean;'],
    response:
      "{ id?: string; associatedParties?: { id?: string; name?: string; originParties?: { domain: 'PARTIES' | 'ACCOUNTS'; qualifiedId: string; }[]; selfIndividual?: boolean; type?: string; }[]; countryCode?: string; email?: string; firstName?: string; hasAvatar?: boolean; lastName?: string; personalId?: string; phoneNumber?: string; preferredLanguage?: string; preferredName?: string; selfIndividualParty?: { id?: string; name?: string; originParties?: { domain: 'PARTIES' | 'ACCOUNTS'; qualifiedId: string; }[]; selfIndividual?: boolean; type?: string; }; username?: string; userState?: 'ACTIVE' | 'INACTIVE'; }",
    markdown:
      "## retrieve\n\n`client.staff.users.retrieve(userId: string, plmr-staff-action?: boolean): { id?: string; associatedParties?: object[]; countryCode?: string; email?: string; firstName?: string; hasAvatar?: boolean; lastName?: string; personalId?: string; phoneNumber?: string; preferredLanguage?: string; preferredName?: string; selfIndividualParty?: object; username?: string; userState?: 'ACTIVE' | 'INACTIVE'; }`\n\n**get** `/api/v1/staff/users/{userId}`\n\nRetrieve details of a specific bank user.\n\n### Parameters\n\n- `userId: string`\n\n- `plmr-staff-action?: boolean`\n\n### Returns\n\n- `{ id?: string; associatedParties?: { id?: string; name?: string; originParties?: { domain: 'PARTIES' | 'ACCOUNTS'; qualifiedId: string; }[]; selfIndividual?: boolean; type?: string; }[]; countryCode?: string; email?: string; firstName?: string; hasAvatar?: boolean; lastName?: string; personalId?: string; phoneNumber?: string; preferredLanguage?: string; preferredName?: string; selfIndividualParty?: { id?: string; name?: string; originParties?: { domain: 'PARTIES' | 'ACCOUNTS'; qualifiedId: string; }[]; selfIndividual?: boolean; type?: string; }; username?: string; userState?: 'ACTIVE' | 'INACTIVE'; }`\n\n  - `id?: string`\n  - `associatedParties?: { id?: string; name?: string; originParties?: { domain: 'PARTIES' | 'ACCOUNTS'; qualifiedId: string; }[]; selfIndividual?: boolean; type?: string; }[]`\n  - `countryCode?: string`\n  - `email?: string`\n  - `firstName?: string`\n  - `hasAvatar?: boolean`\n  - `lastName?: string`\n  - `personalId?: string`\n  - `phoneNumber?: string`\n  - `preferredLanguage?: string`\n  - `preferredName?: string`\n  - `selfIndividualParty?: { id?: string; name?: string; originParties?: { domain: 'PARTIES' | 'ACCOUNTS'; qualifiedId: string; }[]; selfIndividual?: boolean; type?: string; }`\n  - `username?: string`\n  - `userState?: 'ACTIVE' | 'INACTIVE'`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst user = await client.staff.users.retrieve('123e4567-e89b-12d3-a456-426614174000');\n\nconsole.log(user);\n```",
    perLanguage: {
      typescript: {
        method: 'client.staff.users.retrieve',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nconst user = await client.staff.users.retrieve('123e4567-e89b-12d3-a456-426614174000');\n\nconsole.log(user.id);",
      },
      python: {
        method: 'staff.users.retrieve',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nuser = client.staff.users.retrieve(\n    user_id="123e4567-e89b-12d3-a456-426614174000",\n)\nprint(user.id)',
      },
      java: {
        method: 'staff().users().retrieve',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.staff.users.UserRetrieveParams;\nimport com.plumery.api.models.staff.users.UserRetrieveResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        UserRetrieveResponse user = client.staff().users().retrieve("123e4567-e89b-12d3-a456-426614174000");\n    }\n}',
      },
      kotlin: {
        method: 'staff().users().retrieve',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.staff.users.UserRetrieveParams\nimport com.plumery.api.models.staff.users.UserRetrieveResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val user: UserRetrieveResponse = client.staff().users().retrieve("123e4567-e89b-12d3-a456-426614174000")\n}',
      },
      go: {
        method: 'client.Staff.Users.Get',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tuser, err := client.Staff.Users.Get(\n\t\tcontext.TODO(),\n\t\t"123e4567-e89b-12d3-a456-426614174000",\n\t\tplumery.StaffUserGetParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", user.ID)\n}\n',
      },
      cli: {
        method: 'users retrieve',
        example:
          "plumery staff:users retrieve \\\n  --session 'My Session' \\\n  --user-id 123e4567-e89b-12d3-a456-426614174000",
      },
      http: {
        example: 'curl https://api.plumery.com/api/v1/staff/users/$USER_ID \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'forcePasswordReset',
    endpoint: '/api/v1/staff/users/{userId}:force-password-reset',
    httpMethod: 'post',
    summary: 'Force user to reset password',
    description: 'Forces the end user to reset its own password.',
    stainlessPath: '(resource) staff.users > (method) forcePasswordReset',
    qualified: 'client.staff.users.forcePasswordReset',
    params: ['userId: string;', 'plmr-staff-action?: boolean;'],
    markdown:
      "## forcePasswordReset\n\n`client.staff.users.forcePasswordReset(userId: string, plmr-staff-action?: boolean): void`\n\n**post** `/api/v1/staff/users/{userId}:force-password-reset`\n\nForces the end user to reset its own password.\n\n### Parameters\n\n- `userId: string`\n\n- `plmr-staff-action?: boolean`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nawait client.staff.users.forcePasswordReset('123e4567-e89b-12d3-a456-426614174000')\n```",
    perLanguage: {
      typescript: {
        method: 'client.staff.users.forcePasswordReset',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nawait client.staff.users.forcePasswordReset('123e4567-e89b-12d3-a456-426614174000');",
      },
      python: {
        method: 'staff.users.force_password_reset',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nclient.staff.users.force_password_reset(\n    user_id="123e4567-e89b-12d3-a456-426614174000",\n)',
      },
      java: {
        method: 'staff().users().forcePasswordReset',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.staff.users.UserForcePasswordResetParams;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        client.staff().users().forcePasswordReset("123e4567-e89b-12d3-a456-426614174000");\n    }\n}',
      },
      kotlin: {
        method: 'staff().users().forcePasswordReset',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.staff.users.UserForcePasswordResetParams\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    client.staff().users().forcePasswordReset("123e4567-e89b-12d3-a456-426614174000")\n}',
      },
      go: {
        method: 'client.Staff.Users.ForcePasswordReset',
        example:
          'package main\n\nimport (\n\t"context"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\terr := client.Staff.Users.ForcePasswordReset(\n\t\tcontext.TODO(),\n\t\t"123e4567-e89b-12d3-a456-426614174000",\n\t\tplumery.StaffUserForcePasswordResetParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
      },
      cli: {
        method: 'users forcePasswordReset',
        example:
          "plumery staff:users force-password-reset \\\n  --session 'My Session' \\\n  --user-id 123e4567-e89b-12d3-a456-426614174000",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/staff/users/$USER_ID:force-password-reset \\\n    -X POST \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'deactivateUser',
    endpoint: '/api/v1/staff/users/{userId}:deactivate-user',
    httpMethod: 'post',
    summary: 'Deactivate user',
    description:
      'Deactivates a specific bank user, terminates their active sessions, and updates their state to INACTIVE.',
    stainlessPath: '(resource) staff.users > (method) deactivateUser',
    qualified: 'client.staff.users.deactivateUser',
    params: ['userId: string;', 'plmr-staff-action?: boolean;'],
    markdown:
      "## deactivateUser\n\n`client.staff.users.deactivateUser(userId: string, plmr-staff-action?: boolean): void`\n\n**post** `/api/v1/staff/users/{userId}:deactivate-user`\n\nDeactivates a specific bank user, terminates their active sessions, and updates their state to INACTIVE.\n\n### Parameters\n\n- `userId: string`\n\n- `plmr-staff-action?: boolean`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nawait client.staff.users.deactivateUser('123e4567-e89b-12d3-a456-426614174000')\n```",
    perLanguage: {
      typescript: {
        method: 'client.staff.users.deactivateUser',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nawait client.staff.users.deactivateUser('123e4567-e89b-12d3-a456-426614174000');",
      },
      python: {
        method: 'staff.users.deactivate_user',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nclient.staff.users.deactivate_user(\n    user_id="123e4567-e89b-12d3-a456-426614174000",\n)',
      },
      java: {
        method: 'staff().users().deactivateUser',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.staff.users.UserDeactivateUserParams;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        client.staff().users().deactivateUser("123e4567-e89b-12d3-a456-426614174000");\n    }\n}',
      },
      kotlin: {
        method: 'staff().users().deactivateUser',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.staff.users.UserDeactivateUserParams\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    client.staff().users().deactivateUser("123e4567-e89b-12d3-a456-426614174000")\n}',
      },
      go: {
        method: 'client.Staff.Users.DeactivateUser',
        example:
          'package main\n\nimport (\n\t"context"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\terr := client.Staff.Users.DeactivateUser(\n\t\tcontext.TODO(),\n\t\t"123e4567-e89b-12d3-a456-426614174000",\n\t\tplumery.StaffUserDeactivateUserParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
      },
      cli: {
        method: 'users deactivateUser',
        example:
          "plumery staff:users deactivate-user \\\n  --session 'My Session' \\\n  --user-id 123e4567-e89b-12d3-a456-426614174000",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/staff/users/$USER_ID:deactivate-user \\\n    -X POST \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'activateUser',
    endpoint: '/api/v1/staff/users/{userId}:activate-user',
    httpMethod: 'post',
    summary: 'Activate user',
    description: 'Activates a specific bank user that was previously deactivated.',
    stainlessPath: '(resource) staff.users > (method) activateUser',
    qualified: 'client.staff.users.activateUser',
    params: ['userId: string;', 'plmr-staff-action?: boolean;'],
    markdown:
      "## activateUser\n\n`client.staff.users.activateUser(userId: string, plmr-staff-action?: boolean): void`\n\n**post** `/api/v1/staff/users/{userId}:activate-user`\n\nActivates a specific bank user that was previously deactivated.\n\n### Parameters\n\n- `userId: string`\n\n- `plmr-staff-action?: boolean`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nawait client.staff.users.activateUser('123e4567-e89b-12d3-a456-426614174000')\n```",
    perLanguage: {
      typescript: {
        method: 'client.staff.users.activateUser',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nawait client.staff.users.activateUser('123e4567-e89b-12d3-a456-426614174000');",
      },
      python: {
        method: 'staff.users.activate_user',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nclient.staff.users.activate_user(\n    user_id="123e4567-e89b-12d3-a456-426614174000",\n)',
      },
      java: {
        method: 'staff().users().activateUser',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.staff.users.UserActivateUserParams;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        client.staff().users().activateUser("123e4567-e89b-12d3-a456-426614174000");\n    }\n}',
      },
      kotlin: {
        method: 'staff().users().activateUser',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.staff.users.UserActivateUserParams\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    client.staff().users().activateUser("123e4567-e89b-12d3-a456-426614174000")\n}',
      },
      go: {
        method: 'client.Staff.Users.ActivateUser',
        example:
          'package main\n\nimport (\n\t"context"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\terr := client.Staff.Users.ActivateUser(\n\t\tcontext.TODO(),\n\t\t"123e4567-e89b-12d3-a456-426614174000",\n\t\tplumery.StaffUserActivateUserParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
      },
      cli: {
        method: 'users activateUser',
        example:
          "plumery staff:users activate-user \\\n  --session 'My Session' \\\n  --user-id 123e4567-e89b-12d3-a456-426614174000",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/staff/users/$USER_ID:activate-user \\\n    -X POST \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'deleteUser',
    endpoint: '/api/v1/staff/users/{userId}:delete-user',
    httpMethod: 'post',
    summary: 'Delete user',
    description:
      "Initiates deletion of a bank user's digital identity (IAM account, device bindings, sessions, avatar). Publishes a UserDeleted event consumed by user-keyed services. The user's party and banking data are NOT affected. Audit trail records are preserved.",
    stainlessPath: '(resource) staff.users > (method) deleteUser',
    qualified: 'client.staff.users.deleteUser',
    params: ['userId: string;', 'plmr-staff-action?: boolean;'],
    markdown:
      "## deleteUser\n\n`client.staff.users.deleteUser(userId: string, plmr-staff-action?: boolean): void`\n\n**post** `/api/v1/staff/users/{userId}:delete-user`\n\nInitiates deletion of a bank user's digital identity (IAM account, device bindings, sessions, avatar). Publishes a UserDeleted event consumed by user-keyed services. The user's party and banking data are NOT affected. Audit trail records are preserved.\n\n### Parameters\n\n- `userId: string`\n\n- `plmr-staff-action?: boolean`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nawait client.staff.users.deleteUser('123e4567-e89b-12d3-a456-426614174000')\n```",
    perLanguage: {
      typescript: {
        method: 'client.staff.users.deleteUser',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nawait client.staff.users.deleteUser('123e4567-e89b-12d3-a456-426614174000');",
      },
      python: {
        method: 'staff.users.delete_user',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nclient.staff.users.delete_user(\n    user_id="123e4567-e89b-12d3-a456-426614174000",\n)',
      },
      java: {
        method: 'staff().users().deleteUser',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.staff.users.UserDeleteUserParams;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        client.staff().users().deleteUser("123e4567-e89b-12d3-a456-426614174000");\n    }\n}',
      },
      kotlin: {
        method: 'staff().users().deleteUser',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.staff.users.UserDeleteUserParams\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    client.staff().users().deleteUser("123e4567-e89b-12d3-a456-426614174000")\n}',
      },
      go: {
        method: 'client.Staff.Users.DeleteUser',
        example:
          'package main\n\nimport (\n\t"context"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\terr := client.Staff.Users.DeleteUser(\n\t\tcontext.TODO(),\n\t\t"123e4567-e89b-12d3-a456-426614174000",\n\t\tplumery.StaffUserDeleteUserParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
      },
      cli: {
        method: 'users deleteUser',
        example:
          "plumery staff:users delete-user \\\n  --session 'My Session' \\\n  --user-id 123e4567-e89b-12d3-a456-426614174000",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/staff/users/$USER_ID:delete-user \\\n    -X POST \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'disableBiometrics',
    endpoint: '/api/v1/staff/users/{userId}/devices/{deviceId}:disable-biometrics',
    httpMethod: 'post',
    summary: 'Disable user device biometrics',
    description: 'Disabled the biometrics for a user device.',
    stainlessPath: '(resource) staff.users.devices > (method) disableBiometrics',
    qualified: 'client.staff.users.devices.disableBiometrics',
    params: ['userId: string;', 'deviceId: string;', 'plmr-staff-action?: boolean;'],
    markdown:
      "## disableBiometrics\n\n`client.staff.users.devices.disableBiometrics(userId: string, deviceId: string, plmr-staff-action?: boolean): void`\n\n**post** `/api/v1/staff/users/{userId}/devices/{deviceId}:disable-biometrics`\n\nDisabled the biometrics for a user device.\n\n### Parameters\n\n- `userId: string`\n\n- `deviceId: string`\n\n- `plmr-staff-action?: boolean`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nawait client.staff.users.devices.disableBiometrics('36a22460-ebc8-4ffe-a213-1683c5a420c5', { userId: '123e4567-e89b-12d3-a456-426614174000' })\n```",
    perLanguage: {
      typescript: {
        method: 'client.staff.users.devices.disableBiometrics',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nawait client.staff.users.devices.disableBiometrics('36a22460-ebc8-4ffe-a213-1683c5a420c5', {\n  userId: '123e4567-e89b-12d3-a456-426614174000',\n});",
      },
      python: {
        method: 'staff.users.devices.disable_biometrics',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nclient.staff.users.devices.disable_biometrics(\n    device_id="36a22460-ebc8-4ffe-a213-1683c5a420c5",\n    user_id="123e4567-e89b-12d3-a456-426614174000",\n)',
      },
      java: {
        method: 'staff().users().devices().disableBiometrics',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.staff.users.devices.DeviceDisableBiometricsParams;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        DeviceDisableBiometricsParams params = DeviceDisableBiometricsParams.builder()\n            .userId("123e4567-e89b-12d3-a456-426614174000")\n            .deviceId("36a22460-ebc8-4ffe-a213-1683c5a420c5")\n            .build();\n        client.staff().users().devices().disableBiometrics(params);\n    }\n}',
      },
      kotlin: {
        method: 'staff().users().devices().disableBiometrics',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.staff.users.devices.DeviceDisableBiometricsParams\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: DeviceDisableBiometricsParams = DeviceDisableBiometricsParams.builder()\n        .userId("123e4567-e89b-12d3-a456-426614174000")\n        .deviceId("36a22460-ebc8-4ffe-a213-1683c5a420c5")\n        .build()\n    client.staff().users().devices().disableBiometrics(params)\n}',
      },
      go: {
        method: 'client.Staff.Users.Devices.DisableBiometrics',
        example:
          'package main\n\nimport (\n\t"context"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\terr := client.Staff.Users.Devices.DisableBiometrics(\n\t\tcontext.TODO(),\n\t\t"123e4567-e89b-12d3-a456-426614174000",\n\t\t"36a22460-ebc8-4ffe-a213-1683c5a420c5",\n\t\tplumery.StaffUserDeviceDisableBiometricsParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
      },
      cli: {
        method: 'devices disableBiometrics',
        example:
          "plumery staff:users:devices disable-biometrics \\\n  --session 'My Session' \\\n  --user-id 123e4567-e89b-12d3-a456-426614174000 \\\n  --device-id 36a22460-ebc8-4ffe-a213-1683c5a420c5",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/staff/users/$USER_ID/devices/$DEVICE_ID:disable-biometrics \\\n    -X POST \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'disablePasscode',
    endpoint: '/api/v1/staff/users/{userId}/devices/{deviceId}:disable-passcode',
    httpMethod: 'post',
    summary: 'Disable user device passcode',
    description: 'Disabled the passcode for a user device.',
    stainlessPath: '(resource) staff.users.devices > (method) disablePasscode',
    qualified: 'client.staff.users.devices.disablePasscode',
    params: ['userId: string;', 'deviceId: string;', 'plmr-staff-action?: boolean;'],
    markdown:
      "## disablePasscode\n\n`client.staff.users.devices.disablePasscode(userId: string, deviceId: string, plmr-staff-action?: boolean): void`\n\n**post** `/api/v1/staff/users/{userId}/devices/{deviceId}:disable-passcode`\n\nDisabled the passcode for a user device.\n\n### Parameters\n\n- `userId: string`\n\n- `deviceId: string`\n\n- `plmr-staff-action?: boolean`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nawait client.staff.users.devices.disablePasscode('36a22460-ebc8-4ffe-a213-1683c5a420c5', { userId: '123e4567-e89b-12d3-a456-426614174000' })\n```",
    perLanguage: {
      typescript: {
        method: 'client.staff.users.devices.disablePasscode',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nawait client.staff.users.devices.disablePasscode('36a22460-ebc8-4ffe-a213-1683c5a420c5', {\n  userId: '123e4567-e89b-12d3-a456-426614174000',\n});",
      },
      python: {
        method: 'staff.users.devices.disable_passcode',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nclient.staff.users.devices.disable_passcode(\n    device_id="36a22460-ebc8-4ffe-a213-1683c5a420c5",\n    user_id="123e4567-e89b-12d3-a456-426614174000",\n)',
      },
      java: {
        method: 'staff().users().devices().disablePasscode',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.staff.users.devices.DeviceDisablePasscodeParams;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        DeviceDisablePasscodeParams params = DeviceDisablePasscodeParams.builder()\n            .userId("123e4567-e89b-12d3-a456-426614174000")\n            .deviceId("36a22460-ebc8-4ffe-a213-1683c5a420c5")\n            .build();\n        client.staff().users().devices().disablePasscode(params);\n    }\n}',
      },
      kotlin: {
        method: 'staff().users().devices().disablePasscode',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.staff.users.devices.DeviceDisablePasscodeParams\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: DeviceDisablePasscodeParams = DeviceDisablePasscodeParams.builder()\n        .userId("123e4567-e89b-12d3-a456-426614174000")\n        .deviceId("36a22460-ebc8-4ffe-a213-1683c5a420c5")\n        .build()\n    client.staff().users().devices().disablePasscode(params)\n}',
      },
      go: {
        method: 'client.Staff.Users.Devices.DisablePasscode',
        example:
          'package main\n\nimport (\n\t"context"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\terr := client.Staff.Users.Devices.DisablePasscode(\n\t\tcontext.TODO(),\n\t\t"123e4567-e89b-12d3-a456-426614174000",\n\t\t"36a22460-ebc8-4ffe-a213-1683c5a420c5",\n\t\tplumery.StaffUserDeviceDisablePasscodeParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
      },
      cli: {
        method: 'devices disablePasscode',
        example:
          "plumery staff:users:devices disable-passcode \\\n  --session 'My Session' \\\n  --user-id 123e4567-e89b-12d3-a456-426614174000 \\\n  --device-id 36a22460-ebc8-4ffe-a213-1683c5a420c5",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/staff/users/$USER_ID/devices/$DEVICE_ID:disable-passcode \\\n    -X POST \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'deleteParty',
    endpoint: '/api/v1/staff/parties/{partyId}:delete-party',
    httpMethod: 'post',
    summary: 'Delete party',
    description:
      "Initiates deletion of a party (individual or organisation) and its party-keyed data. Publishes a PartyDeletionInitiated event consumed by party-keyed services and removes the auth party row. The linked user's digital identity is NOT affected - user deletion is a separate operation via the :delete-user endpoint. Audit trail records are preserved.",
    stainlessPath: '(resource) staff.parties > (method) deleteParty',
    qualified: 'client.staff.parties.deleteParty',
    params: ['partyId: string;', 'plmr-staff-action?: boolean;'],
    markdown:
      "## deleteParty\n\n`client.staff.parties.deleteParty(partyId: string, plmr-staff-action?: boolean): void`\n\n**post** `/api/v1/staff/parties/{partyId}:delete-party`\n\nInitiates deletion of a party (individual or organisation) and its party-keyed data. Publishes a PartyDeletionInitiated event consumed by party-keyed services and removes the auth party row. The linked user's digital identity is NOT affected - user deletion is a separate operation via the :delete-user endpoint. Audit trail records are preserved.\n\n### Parameters\n\n- `partyId: string`\n\n- `plmr-staff-action?: boolean`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nawait client.staff.parties.deleteParty('123e4567-e89b-12d3-a456-426614174000')\n```",
    perLanguage: {
      typescript: {
        method: 'client.staff.parties.deleteParty',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nawait client.staff.parties.deleteParty('123e4567-e89b-12d3-a456-426614174000');",
      },
      python: {
        method: 'staff.parties.delete_party',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nclient.staff.parties.delete_party(\n    party_id="123e4567-e89b-12d3-a456-426614174000",\n)',
      },
      java: {
        method: 'staff().parties().deleteParty',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.staff.parties.PartyDeletePartyParams;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        client.staff().parties().deleteParty("123e4567-e89b-12d3-a456-426614174000");\n    }\n}',
      },
      kotlin: {
        method: 'staff().parties().deleteParty',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.staff.parties.PartyDeletePartyParams\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    client.staff().parties().deleteParty("123e4567-e89b-12d3-a456-426614174000")\n}',
      },
      go: {
        method: 'client.Staff.Parties.DeleteParty',
        example:
          'package main\n\nimport (\n\t"context"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\terr := client.Staff.Parties.DeleteParty(\n\t\tcontext.TODO(),\n\t\t"123e4567-e89b-12d3-a456-426614174000",\n\t\tplumery.StaffPartyDeletePartyParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
      },
      cli: {
        method: 'parties deleteParty',
        example:
          "plumery staff:parties delete-party \\\n  --session 'My Session' \\\n  --party-id 123e4567-e89b-12d3-a456-426614174000",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/staff/parties/$PARTY_ID:delete-party \\\n    -X POST \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'login',
    endpoint: '/api/v1/staff/saml/login',
    httpMethod: 'get',
    summary: 'Initiate staff SAML 2.0 login.',
    description:
      'Initiate SAML 2.0 staff user login with configured Identity Provider.\n\nOnce the login via Identity Provider is complete, a redirect is made to the provided `originalUrl` URL along with a Set-Cookie header containing the session ID for the staff user, e.g.:\n\n`auth-session=9bdbb6a4-1f32-469e-9d29-dc68159eada6;Version=1;Domain=.your.domain.com;Path=/;Secure;HttpOnly;SameSite=Lax`\n',
    stainlessPath: '(resource) staff.saml > (method) login',
    qualified: 'client.staff.saml.login',
    params: ['originalUrl: string;'],
    markdown:
      "## login\n\n`client.staff.saml.login(originalUrl: string): void`\n\n**get** `/api/v1/staff/saml/login`\n\nInitiate SAML 2.0 staff user login with configured Identity Provider.\n\nOnce the login via Identity Provider is complete, a redirect is made to the provided `originalUrl` URL along with a Set-Cookie header containing the session ID for the staff user, e.g.:\n\n`auth-session=9bdbb6a4-1f32-469e-9d29-dc68159eada6;Version=1;Domain=.your.domain.com;Path=/;Secure;HttpOnly;SameSite=Lax`\n\n\n### Parameters\n\n- `originalUrl: string`\n  The URL to which staff user should be redirected after successful login via Identity Provider.\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nawait client.staff.saml.login({ originalUrl: 'https://staff.plumery.com/view-users' })\n```",
    perLanguage: {
      typescript: {
        method: 'client.staff.saml.login',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery();\n\nawait client.staff.saml.login({ originalUrl: 'https://staff.plumery.com/view-users' });",
      },
      python: {
        method: 'staff.saml.login',
        example:
          'from plumery import Plumery\n\nclient = Plumery()\nclient.staff.saml.login(\n    original_url="https://staff.plumery.com/view-users",\n)',
      },
      java: {
        method: 'staff().saml().login',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.staff.saml.SamlLoginParams;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        SamlLoginParams params = SamlLoginParams.builder()\n            .originalUrl("https://staff.plumery.com/view-users")\n            .build();\n        client.staff().saml().login(params);\n    }\n}',
      },
      kotlin: {
        method: 'staff().saml().login',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.staff.saml.SamlLoginParams\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: SamlLoginParams = SamlLoginParams.builder()\n        .originalUrl("https://staff.plumery.com/view-users")\n        .build()\n    client.staff().saml().login(params)\n}',
      },
      go: {
        method: 'client.Staff.SAML.Login',
        example:
          'package main\n\nimport (\n\t"context"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\terr := client.Staff.SAML.Login(context.TODO(), plumery.StaffSAMLLoginParams{\n\t\tOriginalURL: plumery.F("https://staff.plumery.com/view-users"),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
      },
      cli: {
        method: 'saml login',
        example:
          "plumery staff:saml login \\\n  --session 'My Session' \\\n  --original-url https://staff.plumery.com/view-users",
      },
      http: {
        example: 'curl https://api.plumery.com/api/v1/staff/saml/login',
      },
    },
  },
  {
    name: 'acs',
    endpoint: '/api/v1/staff/saml/acs',
    httpMethod: 'post',
    summary: 'Confirm staff SAML 2.0 login.',
    description:
      'Internal endpoint only to be called by the Identity Provider after a successful SAML 2.0 login attempt.\n\nProcesses the SAMLResponse and establishes a session for the authenticated staff user.\n\nAfter session creation, redirects the staff user to the original URL via HTTP 302 and sets the `auth-session` cookie.\n',
    stainlessPath: '(resource) staff.saml > (method) acs',
    qualified: 'client.staff.saml.acs',
    params: ['SAMLResponse: string;', 'RelayState?: string;'],
    markdown:
      "## acs\n\n`client.staff.saml.acs(SAMLResponse: string, RelayState?: string): void`\n\n**post** `/api/v1/staff/saml/acs`\n\nInternal endpoint only to be called by the Identity Provider after a successful SAML 2.0 login attempt.\n\nProcesses the SAMLResponse and establishes a session for the authenticated staff user.\n\nAfter session creation, redirects the staff user to the original URL via HTTP 302 and sets the `auth-session` cookie.\n\n\n### Parameters\n\n- `SAMLResponse: string`\n  Base64-encoded SAML response from the Identity Provider.\n\n- `RelayState?: string`\n  URL-encoded original URL to redirect the staff user to after login confirmation.\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nawait client.staff.saml.acs({ SAMLResponse: 'SAMLResponse' })\n```",
    perLanguage: {
      typescript: {
        method: 'client.staff.saml.acs',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery();\n\nawait client.staff.saml.acs({ SAMLResponse: 'SAMLResponse' });",
      },
      python: {
        method: 'staff.saml.acs',
        example:
          'from plumery import Plumery\n\nclient = Plumery()\nclient.staff.saml.acs(\n    saml_response="SAMLResponse",\n)',
      },
      java: {
        method: 'staff().saml().acs',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.staff.saml.SamlAcsParams;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        SamlAcsParams params = SamlAcsParams.builder()\n            .samlResponse("SAMLResponse")\n            .build();\n        client.staff().saml().acs(params);\n    }\n}',
      },
      kotlin: {
        method: 'staff().saml().acs',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.staff.saml.SamlAcsParams\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: SamlAcsParams = SamlAcsParams.builder()\n        .samlResponse("SAMLResponse")\n        .build()\n    client.staff().saml().acs(params)\n}',
      },
      go: {
        method: 'client.Staff.SAML.Acs',
        example:
          'package main\n\nimport (\n\t"context"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\terr := client.Staff.SAML.Acs(context.TODO(), plumery.StaffSAMLAcsParams{\n\t\tSAMLResponse: plumery.F("SAMLResponse"),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
      },
      cli: {
        method: 'saml acs',
        example: "plumery staff:saml acs \\\n  --session 'My Session' \\\n  --saml-response SAMLResponse",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/staff/saml/acs \\\n    -H \'Content-Type: application/x-www-form-urlencoded\' \\\n    -d \'{\n          "SAMLResponse": "SAMLResponse"\n        }\'',
      },
    },
  },
  {
    name: 'list',
    endpoint: '/api/v1/staff/roles',
    httpMethod: 'get',
    summary: 'Retrieve all roles',
    description: 'Retrieve the list of all roles.\n',
    stainlessPath: '(resource) staff.roles > (method) list',
    qualified: 'client.staff.roles.list',
    params: [
      'expandPermissions?: boolean;',
      'teamTypeId?: string;',
      'plmr-user-action?: boolean;',
      'X-Request-ID?: string;',
    ],
    response:
      '{ roles?: { name?: string; permissions?: { action?: string; category?: string; resource?: string; }[]; roleId?: string; }[]; }',
    markdown:
      "## list\n\n`client.staff.roles.list(expandPermissions?: boolean, teamTypeId?: string, plmr-user-action?: boolean, X-Request-ID?: string): { roles?: object[]; }`\n\n**get** `/api/v1/staff/roles`\n\nRetrieve the list of all roles.\n\n\n### Parameters\n\n- `expandPermissions?: boolean`\n  This parameter influences the information about roles provided in the response. If it is set to 'true', \nthe response will include permissions associated with each role. If 'false' or not provided, the response \nwill only include roles without their respective permissions.\n\n\n- `teamTypeId?: string`\n  When provided, only roles associated with the given team type are returned. If not provided,\nall roles are returned.\n\n\n- `plmr-user-action?: boolean`\n\n- `X-Request-ID?: string`\n\n### Returns\n\n- `{ roles?: { name?: string; permissions?: { action?: string; category?: string; resource?: string; }[]; roleId?: string; }[]; }`\n  Contains a list of all roles, including their associated permissions, if this was requested.\n\n  - `roles?: { name?: string; permissions?: { action?: string; category?: string; resource?: string; }[]; roleId?: string; }[]`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst roles = await client.staff.roles.list();\n\nconsole.log(roles);\n```",
    perLanguage: {
      typescript: {
        method: 'client.staff.roles.list',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nconst roles = await client.staff.roles.list();\n\nconsole.log(roles.roles);",
      },
      python: {
        method: 'staff.roles.list',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nroles = client.staff.roles.list()\nprint(roles.roles)',
      },
      java: {
        method: 'staff().roles().list',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.staff.roles.RoleListParams;\nimport com.plumery.api.models.staff.roles.RoleListResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        RoleListResponse roles = client.staff().roles().list();\n    }\n}',
      },
      kotlin: {
        method: 'staff().roles().list',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.staff.roles.RoleListParams\nimport com.plumery.api.models.staff.roles.RoleListResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val roles: RoleListResponse = client.staff().roles().list()\n}',
      },
      go: {
        method: 'client.Staff.Roles.List',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\troles, err := client.Staff.Roles.List(context.TODO(), plumery.StaffRoleListParams{})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", roles.Roles)\n}\n',
      },
      cli: {
        method: 'roles list',
        example: "plumery staff:roles list \\\n  --session 'My Session'",
      },
      http: {
        example: 'curl https://api.plumery.com/api/v1/staff/roles \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'retrieve',
    endpoint: '/api/v1/staff/roles/{roleId}',
    httpMethod: 'get',
    summary: 'Retrieve a role',
    description: 'Retrieve a single role by its stable identifier.\n',
    stainlessPath: '(resource) staff.roles > (method) retrieve',
    qualified: 'client.staff.roles.retrieve',
    params: [
      'roleId: string;',
      'expandPermissions?: boolean;',
      'plmr-user-action?: boolean;',
      'X-Request-ID?: string;',
    ],
    response:
      '{ name?: string; permissions?: { action?: string; category?: string; resource?: string; }[]; roleId?: string; }',
    markdown:
      "## retrieve\n\n`client.staff.roles.retrieve(roleId: string, expandPermissions?: boolean, plmr-user-action?: boolean, X-Request-ID?: string): { name?: string; permissions?: object[]; roleId?: string; }`\n\n**get** `/api/v1/staff/roles/{roleId}`\n\nRetrieve a single role by its stable identifier.\n\n\n### Parameters\n\n- `roleId: string`\n\n- `expandPermissions?: boolean`\n  This parameter influences the information about roles provided in the response. If it is set to 'true', \nthe response will include permissions associated with each role. If 'false' or not provided, the response \nwill only include roles without their respective permissions.\n\n\n- `plmr-user-action?: boolean`\n\n- `X-Request-ID?: string`\n\n### Returns\n\n- `{ name?: string; permissions?: { action?: string; category?: string; resource?: string; }[]; roleId?: string; }`\n  A single role with its stable identifier and its associated permissions, if these were requested.\n\n  - `name?: string`\n  - `permissions?: { action?: string; category?: string; resource?: string; }[]`\n  - `roleId?: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst role = await client.staff.roles.retrieve('3e1250a2-742f-4808-a10a-b9bb8af32f53');\n\nconsole.log(role);\n```",
    perLanguage: {
      typescript: {
        method: 'client.staff.roles.retrieve',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nconst role = await client.staff.roles.retrieve('3e1250a2-742f-4808-a10a-b9bb8af32f53');\n\nconsole.log(role.name);",
      },
      python: {
        method: 'staff.roles.retrieve',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nrole = client.staff.roles.retrieve(\n    role_id="3e1250a2-742f-4808-a10a-b9bb8af32f53",\n)\nprint(role.name)',
      },
      java: {
        method: 'staff().roles().retrieve',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.staff.roles.RoleRetrieveParams;\nimport com.plumery.api.models.staff.roles.RoleRetrieveResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        RoleRetrieveResponse role = client.staff().roles().retrieve("3e1250a2-742f-4808-a10a-b9bb8af32f53");\n    }\n}',
      },
      kotlin: {
        method: 'staff().roles().retrieve',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.staff.roles.RoleRetrieveParams\nimport com.plumery.api.models.staff.roles.RoleRetrieveResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val role: RoleRetrieveResponse = client.staff().roles().retrieve("3e1250a2-742f-4808-a10a-b9bb8af32f53")\n}',
      },
      go: {
        method: 'client.Staff.Roles.Get',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\trole, err := client.Staff.Roles.Get(\n\t\tcontext.TODO(),\n\t\t"3e1250a2-742f-4808-a10a-b9bb8af32f53",\n\t\tplumery.StaffRoleGetParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", role.Name)\n}\n',
      },
      cli: {
        method: 'roles retrieve',
        example:
          "plumery staff:roles retrieve \\\n  --session 'My Session' \\\n  --role-id 3e1250a2-742f-4808-a10a-b9bb8af32f53",
      },
      http: {
        example: 'curl https://api.plumery.com/api/v1/staff/roles/$ROLE_ID \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'update',
    endpoint: '/api/v1/staff/roles/{roleId}',
    httpMethod: 'patch',
    summary: 'Rename a role',
    description: 'Rename an existing role within a given organisation.\n',
    stainlessPath: '(resource) staff.roles > (method) update',
    qualified: 'client.staff.roles.update',
    params: ['roleId: string;', 'name: string;', 'plmr-user-action?: boolean;', 'X-Request-ID?: string;'],
    markdown:
      "## update\n\n`client.staff.roles.update(roleId: string, name: string, plmr-user-action?: boolean, X-Request-ID?: string): void`\n\n**patch** `/api/v1/staff/roles/{roleId}`\n\nRename an existing role within a given organisation.\n\n\n### Parameters\n\n- `roleId: string`\n\n- `name: string`\n  The new name for the role. May only contain letters, digits, underscores, hyphens and dots\n(no spaces or other characters); the name is stored in upper case.\n\n\n- `plmr-user-action?: boolean`\n\n- `X-Request-ID?: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nawait client.staff.roles.update('3e1250a2-742f-4808-a10a-b9bb8af32f53', { name: 'ROLE_RENAMED' })\n```",
    perLanguage: {
      typescript: {
        method: 'client.staff.roles.update',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nawait client.staff.roles.update('3e1250a2-742f-4808-a10a-b9bb8af32f53', { name: 'ROLE_RENAMED' });",
      },
      python: {
        method: 'staff.roles.update',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nclient.staff.roles.update(\n    role_id="3e1250a2-742f-4808-a10a-b9bb8af32f53",\n    name="ROLE_RENAMED",\n)',
      },
      java: {
        method: 'staff().roles().update',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.staff.roles.RoleUpdateParams;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        RoleUpdateParams params = RoleUpdateParams.builder()\n            .roleId("3e1250a2-742f-4808-a10a-b9bb8af32f53")\n            .name("ROLE_RENAMED")\n            .build();\n        client.staff().roles().update(params);\n    }\n}',
      },
      kotlin: {
        method: 'staff().roles().update',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.staff.roles.RoleUpdateParams\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: RoleUpdateParams = RoleUpdateParams.builder()\n        .roleId("3e1250a2-742f-4808-a10a-b9bb8af32f53")\n        .name("ROLE_RENAMED")\n        .build()\n    client.staff().roles().update(params)\n}',
      },
      go: {
        method: 'client.Staff.Roles.Update',
        example:
          'package main\n\nimport (\n\t"context"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\terr := client.Staff.Roles.Update(\n\t\tcontext.TODO(),\n\t\t"3e1250a2-742f-4808-a10a-b9bb8af32f53",\n\t\tplumery.StaffRoleUpdateParams{\n\t\t\tName: plumery.F("ROLE_RENAMED"),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
      },
      cli: {
        method: 'roles update',
        example:
          "plumery staff:roles update \\\n  --session 'My Session' \\\n  --role-id 3e1250a2-742f-4808-a10a-b9bb8af32f53 \\\n  --name ROLE_RENAMED",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/staff/roles/$ROLE_ID \\\n    -X PATCH \\\n    -H \'Content-Type: application/json\' \\\n    -H "Cookie: $SESSION" \\\n    -d \'{\n          "name": "ROLE_RENAMED"\n        }\'',
      },
    },
  },
  {
    name: 'remove',
    endpoint: '/api/v1/staff/roles/{roleId}',
    httpMethod: 'delete',
    summary: 'Delete a role',
    description: 'Delete an existing role within a given organisation.\n',
    stainlessPath: '(resource) staff.roles > (method) remove',
    qualified: 'client.staff.roles.remove',
    params: ['roleId: string;', 'plmr-user-action?: boolean;', 'X-Request-ID?: string;'],
    markdown:
      "## remove\n\n`client.staff.roles.remove(roleId: string, plmr-user-action?: boolean, X-Request-ID?: string): void`\n\n**delete** `/api/v1/staff/roles/{roleId}`\n\nDelete an existing role within a given organisation.\n\n\n### Parameters\n\n- `roleId: string`\n\n- `plmr-user-action?: boolean`\n\n- `X-Request-ID?: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nawait client.staff.roles.remove('3e1250a2-742f-4808-a10a-b9bb8af32f53')\n```",
    perLanguage: {
      typescript: {
        method: 'client.staff.roles.remove',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nawait client.staff.roles.remove('3e1250a2-742f-4808-a10a-b9bb8af32f53');",
      },
      python: {
        method: 'staff.roles.remove',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nclient.staff.roles.remove(\n    role_id="3e1250a2-742f-4808-a10a-b9bb8af32f53",\n)',
      },
      java: {
        method: 'staff().roles().remove',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.staff.roles.RoleRemoveParams;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        client.staff().roles().remove("3e1250a2-742f-4808-a10a-b9bb8af32f53");\n    }\n}',
      },
      kotlin: {
        method: 'staff().roles().remove',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.staff.roles.RoleRemoveParams\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    client.staff().roles().remove("3e1250a2-742f-4808-a10a-b9bb8af32f53")\n}',
      },
      go: {
        method: 'client.Staff.Roles.Remove',
        example:
          'package main\n\nimport (\n\t"context"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\terr := client.Staff.Roles.Remove(\n\t\tcontext.TODO(),\n\t\t"3e1250a2-742f-4808-a10a-b9bb8af32f53",\n\t\tplumery.StaffRoleRemoveParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
      },
      cli: {
        method: 'roles remove',
        example:
          "plumery staff:roles remove \\\n  --session 'My Session' \\\n  --role-id 3e1250a2-742f-4808-a10a-b9bb8af32f53",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/staff/roles/$ROLE_ID \\\n    -X DELETE \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'create',
    endpoint: '/api/v1/staff/roles',
    httpMethod: 'post',
    summary: 'Create a role',
    description:
      'Create a new role within a given organisation. The role is created without any permissions;\nuse the update permissions endpoint to assign permissions afterwards.\n',
    stainlessPath: '(resource) staff.roles > (method) create',
    qualified: 'client.staff.roles.create',
    params: ['name: string;', 'plmr-user-action?: boolean;', 'X-Request-ID?: string;'],
    response: '{ name?: string; roleId?: string; }',
    markdown:
      "## create\n\n`client.staff.roles.create(name: string, plmr-user-action?: boolean, X-Request-ID?: string): { name?: string; roleId?: string; }`\n\n**post** `/api/v1/staff/roles`\n\nCreate a new role within a given organisation. The role is created without any permissions;\nuse the update permissions endpoint to assign permissions afterwards.\n\n\n### Parameters\n\n- `name: string`\n  The name of the role to create. May only contain letters, digits, underscores, hyphens and dots\n(no spaces or other characters); the name is stored in upper case.\n\n\n- `plmr-user-action?: boolean`\n\n- `X-Request-ID?: string`\n\n### Returns\n\n- `{ name?: string; roleId?: string; }`\n  A single role with its stable identifier.\n\n  - `name?: string`\n  - `roleId?: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst role = await client.staff.roles.create({ name: 'NEW_ROLE' });\n\nconsole.log(role);\n```",
    perLanguage: {
      typescript: {
        method: 'client.staff.roles.create',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nconst role = await client.staff.roles.create({ name: 'NEW_ROLE' });\n\nconsole.log(role.name);",
      },
      python: {
        method: 'staff.roles.create',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nrole = client.staff.roles.create(\n    name="NEW_ROLE",\n)\nprint(role.name)',
      },
      java: {
        method: 'staff().roles().create',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.staff.roles.RoleCreateParams;\nimport com.plumery.api.models.staff.roles.RoleCreateResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        RoleCreateParams params = RoleCreateParams.builder()\n            .name("NEW_ROLE")\n            .build();\n        RoleCreateResponse role = client.staff().roles().create(params);\n    }\n}',
      },
      kotlin: {
        method: 'staff().roles().create',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.staff.roles.RoleCreateParams\nimport com.plumery.api.models.staff.roles.RoleCreateResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val params: RoleCreateParams = RoleCreateParams.builder()\n        .name("NEW_ROLE")\n        .build()\n    val role: RoleCreateResponse = client.staff().roles().create(params)\n}',
      },
      go: {
        method: 'client.Staff.Roles.New',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\trole, err := client.Staff.Roles.New(context.TODO(), plumery.StaffRoleNewParams{\n\t\tName: plumery.F("NEW_ROLE"),\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", role.Name)\n}\n',
      },
      cli: {
        method: 'roles create',
        example: "plumery staff:roles create \\\n  --session 'My Session' \\\n  --name NEW_ROLE",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/staff/roles \\\n    -H \'Content-Type: application/json\' \\\n    -H "Cookie: $SESSION" \\\n    -d \'{\n          "name": "NEW_ROLE"\n        }\'',
      },
    },
  },
  {
    name: 'update',
    endpoint: '/api/v1/staff/roles/{roleId}/permissions',
    httpMethod: 'patch',
    summary: 'Update role permissions',
    description:
      "Add or remove permissions for a specific role within a given organisation.\nBoth 'add' and 'remove' are optional; include only what needs to change.\n",
    stainlessPath: '(resource) staff.roles.permissions > (method) update',
    qualified: 'client.staff.roles.permissions.update',
    params: [
      'roleId: string;',
      'add?: { action: string; resource: string; }[];',
      'remove?: { action: string; resource: string; }[];',
      'plmr-user-action?: boolean;',
      'X-Request-ID?: string;',
    ],
    markdown:
      "## update\n\n`client.staff.roles.permissions.update(roleId: string, add?: { action: string; resource: string; }[], remove?: { action: string; resource: string; }[], plmr-user-action?: boolean, X-Request-ID?: string): void`\n\n**patch** `/api/v1/staff/roles/{roleId}/permissions`\n\nAdd or remove permissions for a specific role within a given organisation.\nBoth 'add' and 'remove' are optional; include only what needs to change.\n\n\n### Parameters\n\n- `roleId: string`\n\n- `add?: { action: string; resource: string; }[]`\n  Permissions to grant to the role.\n\n- `remove?: { action: string; resource: string; }[]`\n  Permissions to revoke from the role.\n\n- `plmr-user-action?: boolean`\n\n- `X-Request-ID?: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nawait client.staff.roles.permissions.update('3e1250a2-742f-4808-a10a-b9bb8af32f53')\n```",
    perLanguage: {
      typescript: {
        method: 'client.staff.roles.permissions.update',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nawait client.staff.roles.permissions.update('3e1250a2-742f-4808-a10a-b9bb8af32f53');",
      },
      python: {
        method: 'staff.roles.permissions.update',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nclient.staff.roles.permissions.update(\n    role_id="3e1250a2-742f-4808-a10a-b9bb8af32f53",\n)',
      },
      java: {
        method: 'staff().roles().permissions().update',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.staff.roles.permissions.PermissionUpdateParams;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        client.staff().roles().permissions().update("3e1250a2-742f-4808-a10a-b9bb8af32f53");\n    }\n}',
      },
      kotlin: {
        method: 'staff().roles().permissions().update',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.staff.roles.permissions.PermissionUpdateParams\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    client.staff().roles().permissions().update("3e1250a2-742f-4808-a10a-b9bb8af32f53")\n}',
      },
      go: {
        method: 'client.Staff.Roles.Permissions.Update',
        example:
          'package main\n\nimport (\n\t"context"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\terr := client.Staff.Roles.Permissions.Update(\n\t\tcontext.TODO(),\n\t\t"3e1250a2-742f-4808-a10a-b9bb8af32f53",\n\t\tplumery.StaffRolePermissionUpdateParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
      },
      cli: {
        method: 'permissions update',
        example:
          "plumery staff:roles:permissions update \\\n  --session 'My Session' \\\n  --role-id 3e1250a2-742f-4808-a10a-b9bb8af32f53",
      },
      http: {
        example:
          "curl https://api.plumery.com/api/v1/staff/roles/$ROLE_ID/permissions \\\n    -X PATCH \\\n    -H 'Content-Type: application/json' \\\n    -H \"Cookie: $SESSION\" \\\n    -d '{}'",
      },
    },
  },
  {
    name: 'list',
    endpoint: '/api/v1/staff/roles/group-associations',
    httpMethod: 'get',
    summary: 'Get all role-group associations',
    description: 'Retrieves all available role-group associations.\n',
    stainlessPath: '(resource) staff.roles.group-associations > (method) list',
    qualified: 'client.staff.roles.groupAssociations.list',
    params: ['plmr-user-action?: boolean;', 'X-Request-ID?: string;'],
    response: "{ associations?: { id?: string; idpGroup?: string; roleName?: 'ADMIN'; }[]; }",
    markdown:
      "## list\n\n`client.staff.roles.groupAssociations.list(plmr-user-action?: boolean, X-Request-ID?: string): { associations?: object[]; }`\n\n**get** `/api/v1/staff/roles/group-associations`\n\nRetrieves all available role-group associations.\n\n\n### Parameters\n\n- `plmr-user-action?: boolean`\n\n- `X-Request-ID?: string`\n\n### Returns\n\n- `{ associations?: { id?: string; idpGroup?: string; roleName?: 'ADMIN'; }[]; }`\n\n  - `associations?: { id?: string; idpGroup?: string; roleName?: 'ADMIN'; }[]`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst groupAssociations = await client.staff.roles.groupAssociations.list();\n\nconsole.log(groupAssociations);\n```",
    perLanguage: {
      typescript: {
        method: 'client.staff.roles.groupAssociations.list',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nconst groupAssociations = await client.staff.roles.groupAssociations.list();\n\nconsole.log(groupAssociations.associations);",
      },
      python: {
        method: 'staff.roles.group_associations.list',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\ngroup_associations = client.staff.roles.group_associations.list()\nprint(group_associations.associations)',
      },
      java: {
        method: 'staff().roles().groupAssociations().list',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.staff.roles.groupassociations.GroupAssociationListParams;\nimport com.plumery.api.models.staff.roles.groupassociations.GroupAssociationListResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        GroupAssociationListResponse groupAssociations = client.staff().roles().groupAssociations().list();\n    }\n}',
      },
      kotlin: {
        method: 'staff().roles().groupAssociations().list',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.staff.roles.groupassociations.GroupAssociationListParams\nimport com.plumery.api.models.staff.roles.groupassociations.GroupAssociationListResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val groupAssociations: GroupAssociationListResponse = client.staff().roles().groupAssociations().list()\n}',
      },
      go: {
        method: 'client.Staff.Roles.GroupAssociations.List',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tgroupAssociations, err := client.Staff.Roles.GroupAssociations.List(context.TODO(), plumery.StaffRoleGroupAssociationListParams{})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", groupAssociations.Associations)\n}\n',
      },
      cli: {
        method: 'group-associations list',
        example: "plumery staff:roles:group-associations list \\\n  --session 'My Session'",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/staff/roles/group-associations \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'create',
    endpoint: '/api/v1/staff/roles/group-associations',
    httpMethod: 'post',
    summary: 'Create a new role-group association',
    description: 'Creates a new role-group association.\n',
    stainlessPath: '(resource) staff.roles.group-associations > (method) create',
    qualified: 'client.staff.roles.groupAssociations.create',
    params: [
      'idpGroup?: string;',
      "roleName?: 'ADMIN';",
      'plmr-user-action?: boolean;',
      'X-Request-ID?: string;',
    ],
    response: "{ id?: string; idpGroup?: string; roleName?: 'ADMIN'; }",
    markdown:
      "## create\n\n`client.staff.roles.groupAssociations.create(idpGroup?: string, roleName?: 'ADMIN', plmr-user-action?: boolean, X-Request-ID?: string): { id?: string; idpGroup?: string; roleName?: 'ADMIN'; }`\n\n**post** `/api/v1/staff/roles/group-associations`\n\nCreates a new role-group association.\n\n\n### Parameters\n\n- `idpGroup?: string`\n  The group to which the role is associated, as supported by IdP (Identity provider).\n\n- `roleName?: 'ADMIN'`\n  The role to be associated, as supported by Plumery.\n\n- `plmr-user-action?: boolean`\n\n- `X-Request-ID?: string`\n\n### Returns\n\n- `{ id?: string; idpGroup?: string; roleName?: 'ADMIN'; }`\n  Represents an association between a Plumery role and an IdP group for staff users.\n\n\n  - `id?: string`\n  - `idpGroup?: string`\n  - `roleName?: 'ADMIN'`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst groupAssociation = await client.staff.roles.groupAssociations.create();\n\nconsole.log(groupAssociation);\n```",
    perLanguage: {
      typescript: {
        method: 'client.staff.roles.groupAssociations.create',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nconst groupAssociation = await client.staff.roles.groupAssociations.create();\n\nconsole.log(groupAssociation.id);",
      },
      python: {
        method: 'staff.roles.group_associations.create',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\ngroup_association = client.staff.roles.group_associations.create()\nprint(group_association.id)',
      },
      java: {
        method: 'staff().roles().groupAssociations().create',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.staff.roles.groupassociations.GroupAssociationCreateParams;\nimport com.plumery.api.models.staff.roles.groupassociations.GroupAssociationCreateResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        GroupAssociationCreateResponse groupAssociation = client.staff().roles().groupAssociations().create();\n    }\n}',
      },
      kotlin: {
        method: 'staff().roles().groupAssociations().create',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.staff.roles.groupassociations.GroupAssociationCreateParams\nimport com.plumery.api.models.staff.roles.groupassociations.GroupAssociationCreateResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val groupAssociation: GroupAssociationCreateResponse = client.staff().roles().groupAssociations().create()\n}',
      },
      go: {
        method: 'client.Staff.Roles.GroupAssociations.New',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tgroupAssociation, err := client.Staff.Roles.GroupAssociations.New(context.TODO(), plumery.StaffRoleGroupAssociationNewParams{})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", groupAssociation.ID)\n}\n',
      },
      cli: {
        method: 'group-associations create',
        example: "plumery staff:roles:group-associations create \\\n  --session 'My Session'",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/staff/roles/group-associations \\\n    -X POST \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'delete',
    endpoint: '/api/v1/staff/roles/group-associations/{associationId}',
    httpMethod: 'delete',
    summary: 'Delete a role-group association',
    description: 'Deletes a role-group association pair.\n',
    stainlessPath: '(resource) staff.roles.group-associations > (method) delete',
    qualified: 'client.staff.roles.groupAssociations.delete',
    params: ['associationId: string;', 'plmr-user-action?: boolean;', 'X-Request-ID?: string;'],
    markdown:
      "## delete\n\n`client.staff.roles.groupAssociations.delete(associationId: string, plmr-user-action?: boolean, X-Request-ID?: string): void`\n\n**delete** `/api/v1/staff/roles/group-associations/{associationId}`\n\nDeletes a role-group association pair.\n\n\n### Parameters\n\n- `associationId: string`\n\n- `plmr-user-action?: boolean`\n\n- `X-Request-ID?: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nawait client.staff.roles.groupAssociations.delete('99aca2b3-cedb-4d59-8339-4edcb76492a1')\n```",
    perLanguage: {
      typescript: {
        method: 'client.staff.roles.groupAssociations.delete',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nawait client.staff.roles.groupAssociations.delete('99aca2b3-cedb-4d59-8339-4edcb76492a1');",
      },
      python: {
        method: 'staff.roles.group_associations.delete',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nclient.staff.roles.group_associations.delete(\n    association_id="99aca2b3-cedb-4d59-8339-4edcb76492a1",\n)',
      },
      java: {
        method: 'staff().roles().groupAssociations().delete',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.staff.roles.groupassociations.GroupAssociationDeleteParams;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        client.staff().roles().groupAssociations().delete("99aca2b3-cedb-4d59-8339-4edcb76492a1");\n    }\n}',
      },
      kotlin: {
        method: 'staff().roles().groupAssociations().delete',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.staff.roles.groupassociations.GroupAssociationDeleteParams\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    client.staff().roles().groupAssociations().delete("99aca2b3-cedb-4d59-8339-4edcb76492a1")\n}',
      },
      go: {
        method: 'client.Staff.Roles.GroupAssociations.Delete',
        example:
          'package main\n\nimport (\n\t"context"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\terr := client.Staff.Roles.GroupAssociations.Delete(\n\t\tcontext.TODO(),\n\t\t"99aca2b3-cedb-4d59-8339-4edcb76492a1",\n\t\tplumery.StaffRoleGroupAssociationDeleteParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
      },
      cli: {
        method: 'group-associations delete',
        example:
          "plumery staff:roles:group-associations delete \\\n  --session 'My Session' \\\n  --association-id 99aca2b3-cedb-4d59-8339-4edcb76492a1",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/staff/roles/group-associations/$ASSOCIATION_ID \\\n    -X DELETE \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'list',
    endpoint: '/api/v1/staff/permissions',
    httpMethod: 'get',
    summary: 'Retrieve catalog of permissions',
    description:
      "Retrieve catalog of permissions available within the system. These permissions can be used\nto configure roles for an organisation.\n\n### API resource ↔ permissions catalog mapping\n\nEach permission corresponds to an API resource — an endpoint (or group of endpoints) whose\naccess is granted or denied by a role's permission configuration. Permissions are grouped\nbelow by **category**. For each resource:\n\n- the **bold** name is the `resource` value returned by this endpoint;\n- the code in parentheses is the underlying API resource being protected;\n- **Actions** are the actions returned for that resource (`get` → `read`, `post` → `create`,\n  `*` → `all`; all other actions are returned unchanged).\n\n#### Accounts\n\n- **`accounts`** (`api:parties:accounts`) — bank accounts held by the party\n  - Actions: `all`, `read`, `create`, `close`, `update-name`\n- **`account-transactions`** (`api:parties:accounts:transactions`) — transactions belonging to a specific account\n  - Actions: `all`, `generate-snapshot`, `generate-statement`\n- **`account-end-of-day-balances`** (`api:parties:accounts:end-of-day-balances`) — end-of-day balances for an account\n  - Actions: `all`, `read`\n- **`account-transaction-exports`** (`api:parties:accounts:transaction-exports`) — exports of account transactions\n  - Actions: `all`, `read`\n- **`transactions`** (`api:parties:transactions`) — party-level transactions across accounts\n  - Actions: `all`, `read`\n- **`transaction-insights`** (`api:parties:transactions:insights`) — analytics and insights derived from transactions\n  - Actions: `all`, `read`\n\n#### Payments\n\n- **`payments`** (`api:parties:payments`) — payment orders\n  - Actions: `all`, `read`, `create`\n- **`payments-status`** (`api:parties:payments:status`) — status of payment orders\n  - Actions: `all`, `read`\n- **`standing-orders`** (`api:parties:standing-orders`) — recurring (standing order) payments\n  - Actions: `all`, `read`, `create`, `cancel`, `pause`, `resume`, `update`\n- **`counterparties`** (`api:parties:counterparties`) — saved counterparties / beneficiaries\n  - Actions: `all`, `read`, `create`, `search`, `remove`, `update-details`, `add-payment-method`, `remove-payment-method`\n- **`payment-limits`** (`api:parties:payment-limits`) — party payment limits\n  - Actions: `read`, `put`\n\n#### Cards\n\n- **`cards`** (`api:parties:cards`) — payment cards\n  - Actions: `all`, `read`, `create`, `freeze`, `unfreeze`, `terminate`, `update-alias`\n- **`cards-pin`** (`api:parties:cards:pin`) — card PIN management\n  - Actions: `all`, `read`\n\n#### Teams\n\n- **`teams`** (`api:parties:teams`) — teams within an organisation\n  - Actions: `read`\n- **`team-members`** (`api:parties:teams:members`) — members of a team\n  - Actions: `read`, `remove`, `suspend`, `unsuspend`, `update-role`\n- **`team-member-payment-limits`** (`api:parties:teams:members:payment-limits`) — payment limits of team members\n  - Actions: `read`, `put`\n- **`team-invitations`** (`api:parties:teams:invitations`) — invitations to join a team\n  - Actions: `read`, `create`, `resend`, `revoke`\n- **`team-approval-processes`** (`api:parties:teams:approval-processes`) — approval process configuration for teams\n  - Actions: `read`, `create`, `put`, `delete`\n- **`team-approval-requests`** (`api:parties:teams:approval-requests`) — approval requests within teams\n  - Actions: `read`\n- **`team-approval-request-decisions`** (`api:parties:teams:approval-requests:decisions`) — decisions on team approval requests\n  - Actions: `create`\n- **`team-roles`** (`api:parties:roles`) — roles defined for a team\n  - Actions: `read`\n- **`team-role-permissions`** (`api:parties:roles:permissions`) — permissions assigned to team roles\n  - Actions: `read`\n\n#### Organisations\n\n- **`organisations`** (`api:parties:organisations`) — organisation party profiles\n  - Actions: `read`, `update-organisation-details`, `update-organisation-type`, `update-operating-address`, `update-postal-address`, `update-registration-address`\n\n#### Individuals\n\n- **`individuals`** (`api:parties:individuals`) — individual party profiles\n  - Actions: `all`\n- **`individual-tax-identifications`** (`api:parties:individuals:tax-identifications`) — tax identifications of an individual\n  - Actions: `all`\n\n#### Quotes\n\n- **`quotes`** (`api:parties:quotes`) — FX / payment quotes\n  - Actions: `all`, `generate`\n\n#### Funds transfers\n\n- **`funds-transfers`** (`api:parties:funds-transfers`) — funds transfers\n  - Actions: `all`, `create`\n- **`funds-transfers-status`** (`api:parties:funds-transfers:status`) — status of funds transfers\n  - Actions: `all`, `read`\n\n#### Loans\n\n- **`loans`** (`api:parties:loans`) — loans held by the party\n  - Actions: `all`, `read`\n- **`loan-applications`** (`api:parties:loan-applications`) — loan applications\n  - Actions: `all`, `read`, `create`, `generate-offer`, `accept-offer`, `preview-schedule`, `set-bank-account-details`, `submit-application-details`, `submit-business-application-details`, `submit-collateral-details`, `submit-credit-bureau`, `upload-document`\n\n#### Invitations\n\n- **`invitations`** (`api:invitations`) — user invitations\n  - Actions: `read`, `accept`\n\n> **Note:** The exact set of returned permissions depends on the roles & permissions\n> configuration of the target environment, so it may vary between environments.\n",
    stainlessPath: '(resource) staff.permissions > (method) list',
    qualified: 'client.staff.permissions.list',
    params: ['plmr-user-action?: boolean;', 'X-Request-ID?: string;'],
    response: '{ permissions?: { action?: string; category?: string; resource?: string; }[]; }',
    markdown:
      "## list\n\n`client.staff.permissions.list(plmr-user-action?: boolean, X-Request-ID?: string): { permissions?: object[]; }`\n\n**get** `/api/v1/staff/permissions`\n\nRetrieve catalog of permissions available within the system. These permissions can be used\nto configure roles for an organisation.\n\n### API resource ↔ permissions catalog mapping\n\nEach permission corresponds to an API resource — an endpoint (or group of endpoints) whose\naccess is granted or denied by a role's permission configuration. Permissions are grouped\nbelow by **category**. For each resource:\n\n- the **bold** name is the `resource` value returned by this endpoint;\n- the code in parentheses is the underlying API resource being protected;\n- **Actions** are the actions returned for that resource (`get` → `read`, `post` → `create`,\n  `*` → `all`; all other actions are returned unchanged).\n\n#### Accounts\n\n- **`accounts`** (`api:parties:accounts`) — bank accounts held by the party\n  - Actions: `all`, `read`, `create`, `close`, `update-name`\n- **`account-transactions`** (`api:parties:accounts:transactions`) — transactions belonging to a specific account\n  - Actions: `all`, `generate-snapshot`, `generate-statement`\n- **`account-end-of-day-balances`** (`api:parties:accounts:end-of-day-balances`) — end-of-day balances for an account\n  - Actions: `all`, `read`\n- **`account-transaction-exports`** (`api:parties:accounts:transaction-exports`) — exports of account transactions\n  - Actions: `all`, `read`\n- **`transactions`** (`api:parties:transactions`) — party-level transactions across accounts\n  - Actions: `all`, `read`\n- **`transaction-insights`** (`api:parties:transactions:insights`) — analytics and insights derived from transactions\n  - Actions: `all`, `read`\n\n#### Payments\n\n- **`payments`** (`api:parties:payments`) — payment orders\n  - Actions: `all`, `read`, `create`\n- **`payments-status`** (`api:parties:payments:status`) — status of payment orders\n  - Actions: `all`, `read`\n- **`standing-orders`** (`api:parties:standing-orders`) — recurring (standing order) payments\n  - Actions: `all`, `read`, `create`, `cancel`, `pause`, `resume`, `update`\n- **`counterparties`** (`api:parties:counterparties`) — saved counterparties / beneficiaries\n  - Actions: `all`, `read`, `create`, `search`, `remove`, `update-details`, `add-payment-method`, `remove-payment-method`\n- **`payment-limits`** (`api:parties:payment-limits`) — party payment limits\n  - Actions: `read`, `put`\n\n#### Cards\n\n- **`cards`** (`api:parties:cards`) — payment cards\n  - Actions: `all`, `read`, `create`, `freeze`, `unfreeze`, `terminate`, `update-alias`\n- **`cards-pin`** (`api:parties:cards:pin`) — card PIN management\n  - Actions: `all`, `read`\n\n#### Teams\n\n- **`teams`** (`api:parties:teams`) — teams within an organisation\n  - Actions: `read`\n- **`team-members`** (`api:parties:teams:members`) — members of a team\n  - Actions: `read`, `remove`, `suspend`, `unsuspend`, `update-role`\n- **`team-member-payment-limits`** (`api:parties:teams:members:payment-limits`) — payment limits of team members\n  - Actions: `read`, `put`\n- **`team-invitations`** (`api:parties:teams:invitations`) — invitations to join a team\n  - Actions: `read`, `create`, `resend`, `revoke`\n- **`team-approval-processes`** (`api:parties:teams:approval-processes`) — approval process configuration for teams\n  - Actions: `read`, `create`, `put`, `delete`\n- **`team-approval-requests`** (`api:parties:teams:approval-requests`) — approval requests within teams\n  - Actions: `read`\n- **`team-approval-request-decisions`** (`api:parties:teams:approval-requests:decisions`) — decisions on team approval requests\n  - Actions: `create`\n- **`team-roles`** (`api:parties:roles`) — roles defined for a team\n  - Actions: `read`\n- **`team-role-permissions`** (`api:parties:roles:permissions`) — permissions assigned to team roles\n  - Actions: `read`\n\n#### Organisations\n\n- **`organisations`** (`api:parties:organisations`) — organisation party profiles\n  - Actions: `read`, `update-organisation-details`, `update-organisation-type`, `update-operating-address`, `update-postal-address`, `update-registration-address`\n\n#### Individuals\n\n- **`individuals`** (`api:parties:individuals`) — individual party profiles\n  - Actions: `all`\n- **`individual-tax-identifications`** (`api:parties:individuals:tax-identifications`) — tax identifications of an individual\n  - Actions: `all`\n\n#### Quotes\n\n- **`quotes`** (`api:parties:quotes`) — FX / payment quotes\n  - Actions: `all`, `generate`\n\n#### Funds transfers\n\n- **`funds-transfers`** (`api:parties:funds-transfers`) — funds transfers\n  - Actions: `all`, `create`\n- **`funds-transfers-status`** (`api:parties:funds-transfers:status`) — status of funds transfers\n  - Actions: `all`, `read`\n\n#### Loans\n\n- **`loans`** (`api:parties:loans`) — loans held by the party\n  - Actions: `all`, `read`\n- **`loan-applications`** (`api:parties:loan-applications`) — loan applications\n  - Actions: `all`, `read`, `create`, `generate-offer`, `accept-offer`, `preview-schedule`, `set-bank-account-details`, `submit-application-details`, `submit-business-application-details`, `submit-collateral-details`, `submit-credit-bureau`, `upload-document`\n\n#### Invitations\n\n- **`invitations`** (`api:invitations`) — user invitations\n  - Actions: `read`, `accept`\n\n> **Note:** The exact set of returned permissions depends on the roles & permissions\n> configuration of the target environment, so it may vary between environments.\n\n\n### Parameters\n\n- `plmr-user-action?: boolean`\n\n- `X-Request-ID?: string`\n\n### Returns\n\n- `{ permissions?: { action?: string; category?: string; resource?: string; }[]; }`\n  Contains a list of all permissions that can be assigned within an organisation.\n\n  - `permissions?: { action?: string; category?: string; resource?: string; }[]`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst permissions = await client.staff.permissions.list();\n\nconsole.log(permissions);\n```",
    perLanguage: {
      typescript: {
        method: 'client.staff.permissions.list',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nconst permissions = await client.staff.permissions.list();\n\nconsole.log(permissions.permissions);",
      },
      python: {
        method: 'staff.permissions.list',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\npermissions = client.staff.permissions.list()\nprint(permissions.permissions)',
      },
      java: {
        method: 'staff().permissions().list',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.staff.permissions.PermissionListParams;\nimport com.plumery.api.models.staff.permissions.PermissionListResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        PermissionListResponse permissions = client.staff().permissions().list();\n    }\n}',
      },
      kotlin: {
        method: 'staff().permissions().list',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.staff.permissions.PermissionListParams\nimport com.plumery.api.models.staff.permissions.PermissionListResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val permissions: PermissionListResponse = client.staff().permissions().list()\n}',
      },
      go: {
        method: 'client.Staff.Permissions.List',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tpermissions, err := client.Staff.Permissions.List(context.TODO(), plumery.StaffPermissionListParams{})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", permissions.Permissions)\n}\n',
      },
      cli: {
        method: 'permissions list',
        example: "plumery staff:permissions list \\\n  --session 'My Session'",
      },
      http: {
        example: 'curl https://api.plumery.com/api/v1/staff/permissions \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'retrieve',
    endpoint: '/api/v1/invitations/{invitationId}',
    httpMethod: 'get',
    summary: 'Retrieve invitation (me)',
    description: 'Retrieve invitation details for the authenticated user.\n',
    stainlessPath: '(resource) invitations > (method) retrieve',
    qualified: 'client.invitations.retrieve',
    params: ['invitationId: string;', 'plmr-user-action?: boolean;', 'X-Request-ID?: string;'],
    response:
      "{ invitationId?: string; organisationLegalName?: string; status?: 'PENDING_APPROVAL' | 'PENDING' | 'ACCEPTED' | 'REVOKED' | 'REJECTED' | 'EXPIRED'; statusDateTime?: string; }",
    markdown:
      "## retrieve\n\n`client.invitations.retrieve(invitationId: string, plmr-user-action?: boolean, X-Request-ID?: string): { invitationId?: string; organisationLegalName?: string; status?: 'PENDING_APPROVAL' | 'PENDING' | 'ACCEPTED' | 'REVOKED' | 'REJECTED' | 'EXPIRED'; statusDateTime?: string; }`\n\n**get** `/api/v1/invitations/{invitationId}`\n\nRetrieve invitation details for the authenticated user.\n\n\n### Parameters\n\n- `invitationId: string`\n\n- `plmr-user-action?: boolean`\n\n- `X-Request-ID?: string`\n\n### Returns\n\n- `{ invitationId?: string; organisationLegalName?: string; status?: 'PENDING_APPROVAL' | 'PENDING' | 'ACCEPTED' | 'REVOKED' | 'REJECTED' | 'EXPIRED'; statusDateTime?: string; }`\n  Invitation details for the authenticated user (minimal for UI display).\n\n  - `invitationId?: string`\n  - `organisationLegalName?: string`\n  - `status?: 'PENDING_APPROVAL' | 'PENDING' | 'ACCEPTED' | 'REVOKED' | 'REJECTED' | 'EXPIRED'`\n  - `statusDateTime?: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nconst invitation = await client.invitations.retrieve('1adcdcc1-e39e-4fd0-91d7-22a606c25622');\n\nconsole.log(invitation);\n```",
    perLanguage: {
      typescript: {
        method: 'client.invitations.retrieve',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nconst invitation = await client.invitations.retrieve('1adcdcc1-e39e-4fd0-91d7-22a606c25622');\n\nconsole.log(invitation.invitationId);",
      },
      python: {
        method: 'invitations.retrieve',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\ninvitation = client.invitations.retrieve(\n    invitation_id="1adcdcc1-e39e-4fd0-91d7-22a606c25622",\n)\nprint(invitation.invitation_id)',
      },
      java: {
        method: 'invitations().retrieve',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.invitations.InvitationRetrieveParams;\nimport com.plumery.api.models.invitations.InvitationRetrieveResponse;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        InvitationRetrieveResponse invitation = client.invitations().retrieve("1adcdcc1-e39e-4fd0-91d7-22a606c25622");\n    }\n}',
      },
      kotlin: {
        method: 'invitations().retrieve',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.invitations.InvitationRetrieveParams\nimport com.plumery.api.models.invitations.InvitationRetrieveResponse\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    val invitation: InvitationRetrieveResponse = client.invitations().retrieve("1adcdcc1-e39e-4fd0-91d7-22a606c25622")\n}',
      },
      go: {
        method: 'client.Invitations.Get',
        example:
          'package main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\tinvitation, err := client.Invitations.Get(\n\t\tcontext.TODO(),\n\t\t"1adcdcc1-e39e-4fd0-91d7-22a606c25622",\n\t\tplumery.InvitationGetParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", invitation.InvitationID)\n}\n',
      },
      cli: {
        method: 'invitations retrieve',
        example:
          "plumery invitations retrieve \\\n  --session 'My Session' \\\n  --invitation-id 1adcdcc1-e39e-4fd0-91d7-22a606c25622",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/invitations/$INVITATION_ID \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
  {
    name: 'accept',
    endpoint: '/api/v1/invitations/{invitationId}:accept',
    httpMethod: 'post',
    summary: 'Accept invitation (me)',
    description: 'Accept invitation for the authenticated user.\n',
    stainlessPath: '(resource) invitations > (method) accept',
    qualified: 'client.invitations.accept',
    params: ['invitationId: string;', 'plmr-user-action?: boolean;', 'X-Request-ID?: string;'],
    markdown:
      "## accept\n\n`client.invitations.accept(invitationId: string, plmr-user-action?: boolean, X-Request-ID?: string): void`\n\n**post** `/api/v1/invitations/{invitationId}:accept`\n\nAccept invitation for the authenticated user.\n\n\n### Parameters\n\n- `invitationId: string`\n\n- `plmr-user-action?: boolean`\n\n- `X-Request-ID?: string`\n\n### Example\n\n```typescript\nimport Plumery from 'plumery';\n\nconst client = new Plumery();\n\nawait client.invitations.accept('1adcdcc1-e39e-4fd0-91d7-22a606c25622')\n```",
    perLanguage: {
      typescript: {
        method: 'client.invitations.accept',
        example:
          "import Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nawait client.invitations.accept('1adcdcc1-e39e-4fd0-91d7-22a606c25622');",
      },
      python: {
        method: 'invitations.accept',
        example:
          'from plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\nclient.invitations.accept(\n    invitation_id="1adcdcc1-e39e-4fd0-91d7-22a606c25622",\n)',
      },
      java: {
        method: 'invitations().accept',
        example:
          'package com.plumery.api.example;\n\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.invitations.InvitationAcceptParams;\n\npublic final class Main {\n    private Main() {}\n\n    public static void main(String[] args) {\n        PlumeryClient client = PlumeryOkHttpClient.builder()\n            .fromEnv()\n            .session("My Session")\n            .build();\n\n        client.invitations().accept("1adcdcc1-e39e-4fd0-91d7-22a606c25622");\n    }\n}',
      },
      kotlin: {
        method: 'invitations().accept',
        example:
          'package com.plumery.api.example\n\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.invitations.InvitationAcceptParams\n\nfun main() {\n    val client: PlumeryClient = PlumeryOkHttpClient.builder()\n        .fromEnv()\n        .session("My Session")\n        .build()\n\n    client.invitations().accept("1adcdcc1-e39e-4fd0-91d7-22a606c25622")\n}',
      },
      go: {
        method: 'client.Invitations.Accept',
        example:
          'package main\n\nimport (\n\t"context"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\terr := client.Invitations.Accept(\n\t\tcontext.TODO(),\n\t\t"1adcdcc1-e39e-4fd0-91d7-22a606c25622",\n\t\tplumery.InvitationAcceptParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n',
      },
      cli: {
        method: 'invitations accept',
        example:
          "plumery invitations accept \\\n  --session 'My Session' \\\n  --invitation-id 1adcdcc1-e39e-4fd0-91d7-22a606c25622",
      },
      http: {
        example:
          'curl https://api.plumery.com/api/v1/invitations/$INVITATION_ID:accept \\\n    -X POST \\\n    -H "Cookie: $SESSION"',
      },
    },
  },
];

const EMBEDDED_READMES: { language: string; content: string }[] = [
  {
    language: 'cli',
    content:
      "# Plumery CLI\n\nThe official CLI for the [Plumery REST API](https://plumery.stldocs.app/api).\n\nIt is generated with [Stainless](https://www.stainless.com/).\n\n<!-- x-release-please-start-version -->\n\n## Installation\n\n### Installing with Go\n\nTo test or install the CLI locally, you need [Go](https://go.dev/doc/install) version 1.22 or later installed.\n\n~~~sh\ngo install 'github.com/plumery/plumery-cli/cmd/plumery@latest'\n~~~\n\nOnce you have run `go install`, the binary is placed in your Go bin directory:\n\n- **Default location**: `$HOME/go/bin` (or `$GOPATH/bin` if GOPATH is set)\n- **Check your path**: Run `go env GOPATH` to see the base directory\n\nIf commands aren't found after installation, add the Go bin directory to your PATH:\n\n~~~sh\n# Add to your shell profile (.zshrc, .bashrc, etc.)\nexport PATH=\"$PATH:$(go env GOPATH)/bin\"\n~~~\n\n<!-- x-release-please-end -->\n\n### Running Locally\n\nAfter cloning the git repository for this project, you can use the\n`scripts/run` script to run the tool locally:\n\n~~~sh\n./scripts/run args...\n~~~\n\n## Usage\n\nThe CLI follows a resource-based command structure:\n\n~~~sh\nplumery [resource] <command> [flags...]\n~~~\n\n~~~sh\nplumery parties:accounts list \\\n  --session 'My Session' \\\n  --party-id REPLACE_ME\n~~~\n\nFor details about specific commands, use the `--help` flag.\n\n### Global flags\n\n- `--session`\n- `--help` - Show command line usage\n- `--debug` - Enable debug logging (includes HTTP request/response details)\n- `--version`, `-v` - Show the CLI version\n- `--base-url` - Use a custom API backend URL\n- `--format` - Change the output format (`auto`, `explore`, `json`, `jsonl`, `pretty`, `raw`, `yaml`)\n- `--format-error` - Change the output format for errors (`auto`, `explore`, `json`, `jsonl`, `pretty`, `raw`, `yaml`)\n- `--transform` - Transform the data output using [GJSON syntax](https://github.com/tidwall/gjson/blob/master/SYNTAX.md)\n- `--transform-error` - Transform the error output using [GJSON syntax](https://github.com/tidwall/gjson/blob/master/SYNTAX.md)\n\n### Passing files as arguments\n\nTo pass files to your API, you can use the `@myfile.ext` syntax:\n\n~~~bash\nplumery <command> --arg @abe.jpg\n~~~\n\nFiles can also be passed inside JSON or YAML blobs:\n\n~~~bash\nplumery <command> --arg '{image: \"@abe.jpg\"}'\n# Equivalent:\nplumery <command> <<YAML\narg:\n  image: \"@abe.jpg\"\nYAML\n~~~\n\nIf you need to pass a string literal that begins with an `@` sign, you can\nescape the `@` sign to avoid accidentally passing a file.\n\n~~~bash\nplumery <command> --username '\\@abe'\n~~~\n\n#### Explicit encoding\n\nFor JSON endpoints, the CLI tool does filetype sniffing to determine whether the\nfile contents should be sent as a string literal (for plain text files) or as a\nbase64-encoded string literal (for binary files). If you need to explicitly send\nthe file as either plain text or base64-encoded data, you can use\n`@file://myfile.txt` (for string encoding) or `@data://myfile.dat` (for\nbase64-encoding). Note that absolute paths will begin with `@file://` or\n`@data://`, followed by a third `/` (for example, `@file:///tmp/file.txt`).\n\n~~~bash\nplumery <command> --arg @data://file.txt\n~~~\n\n## Linking different Go SDK versions\n\nYou can link the CLI against a different version of the Plumery Go SDK\nfor development purposes using the `./scripts/link` script.\n\nTo link to a specific version from a repository (version can be a branch,\ngit tag, or commit hash):\n\n~~~bash\n./scripts/link github.com/org/repo@version\n~~~\n\nTo link to a local copy of the SDK:\n\n~~~bash\n./scripts/link ../path/to/plumery-go\n~~~\n\nIf you run the link script without any arguments, it will default to `../plumery-go`.\n",
  },
  {
    language: 'go',
    content:
      '# Plumery Go API Library\n\n<a href="https://pkg.go.dev/github.com/plumery/plumery-go"><img src="https://pkg.go.dev/badge/github.com/plumery/plumery-go.svg" alt="Go Reference"></a>\n\nThe Plumery Go library provides convenient access to the [Plumery REST API](https://plumery.stldocs.app/api)\nfrom applications written in Go.\n\nIt is generated with [Stainless](https://www.stainless.com/).\n\n## MCP Server\n\nUse the Plumery MCP Server to enable AI assistants to interact with this API, allowing them to explore endpoints, make test requests, and use documentation to help integrate this SDK into your application.\n\n[![Add to Cursor](https://cursor.com/deeplink/mcp-install-dark.svg)](https://cursor.com/en-US/install-mcp?name=plumery-mcp&config=eyJuYW1lIjoicGx1bWVyeS1tY3AiLCJ0cmFuc3BvcnQiOiJodHRwIiwidXJsIjoiaHR0cHM6Ly9wbHVtZXJ5LnN0bG1jcC5jb20iLCJoZWFkZXJzIjp7IkNvb2tpZSI6Ik15IFNlc3Npb24ifX0)\n[![Install in VS Code](https://img.shields.io/badge/_-Add_to_VS_Code-blue?style=for-the-badge&logo=data:image/svg%2bxml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGZpbGw9Im5vbmUiIHZpZXdCb3g9IjAgMCA0MCA0MCI+PHBhdGggZmlsbD0iI0VFRSIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMzAuMjM1IDM5Ljg4NGEyLjQ5MSAyLjQ5MSAwIDAgMS0xLjc4MS0uNzNMMTIuNyAyNC43OGwtMy40NiAyLjYyNC0zLjQwNiAyLjU4MmExLjY2NSAxLjY2NSAwIDAgMS0xLjA4Mi4zMzggMS42NjQgMS42NjQgMCAwIDEtMS4wNDYtLjQzMWwtMi4yLTJhMS42NjYgMS42NjYgMCAwIDEgMC0yLjQ2M0w3LjQ1OCAyMCA0LjY3IDE3LjQ1MyAxLjUwNyAxNC41N2ExLjY2NSAxLjY2NSAwIDAgMSAwLTIuNDYzbDIuMi0yYTEuNjY1IDEuNjY1IDAgMCAxIDIuMTMtLjA5N2w2Ljg2MyA1LjIwOUwyOC40NTIuODQ0YTIuNDg4IDIuNDg4IDAgMCAxIDEuODQxLS43MjljLjM1MS4wMDkuNjk5LjA5MSAxLjAxOS4yNDVsOC4yMzYgMy45NjFhMi41IDIuNSAwIDAgMSAxLjQxNSAyLjI1M3YuMDk5LS4wNDVWMzMuMzd2LS4wNDUuMDk1YTIuNTAxIDIuNTAxIDAgMCAxLTEuNDE2IDIuMjU3bC04LjIzNSAzLjk2MWEyLjQ5MiAyLjQ5MiAwIDAgMS0xLjA3Ny4yNDZabS43MTYtMjguOTQ3LTExLjk0OCA5LjA2MiAxMS45NTIgOS4wNjUtLjAwNC0xOC4xMjdaIi8+PC9zdmc+)](https://vscode.stainless.com/mcp/%7B%22name%22%3A%22plumery-mcp%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fplumery.stlmcp.com%22%2C%22headers%22%3A%7B%22Cookie%22%3A%22My%20Session%22%7D%7D)\n\n> Note: You may need to set environment variables in your MCP client.\n\n## Installation\n\n<!-- x-release-please-start-version -->\n\n```go\nimport (\n\t"github.com/plumery/plumery-go" // imported as SDK_PackageName\n)\n```\n\n<!-- x-release-please-end -->\n\nOr to pin the version:\n\n<!-- x-release-please-start-version -->\n\n```sh\ngo get -u \'github.com/plumery/plumery-go@v0.0.1\'\n```\n\n<!-- x-release-please-end -->\n\n## Requirements\n\nThis library requires Go 1.22+.\n\n## Usage\n\nThe full API of this library can be found in [api.md](api.md).\n\n```go\npackage main\n\nimport (\n\t"context"\n\t"fmt"\n\n\t"github.com/plumery/plumery-go"\n\t"github.com/plumery/plumery-go/option"\n)\n\nfunc main() {\n\tclient := plumery.NewClient(\n\t\toption.WithSession("My Session"),\n\t)\n\taccounts, err := client.Parties.Accounts.List(\n\t\tcontext.TODO(),\n\t\t"REPLACE_ME",\n\t\tplumery.PartyAccountListParams{},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf("%+v\\n", accounts.Accounts)\n}\n\n```\n\n### Request fields\n\nAll request parameters are wrapped in a generic `Field` type,\nwhich we use to distinguish zero values from null or omitted fields.\n\nThis prevents accidentally sending a zero value if you forget a required parameter,\nand enables explicitly sending `null`, `false`, `\'\'`, or `0` on optional parameters.\nAny field not specified is not sent.\n\nTo construct fields with values, use the helpers `String()`, `Int()`, `Float()`, or most commonly, the generic `F[T]()`.\nTo send a null, use `Null[T]()`, and to send a nonconforming value, use `Raw[T](any)`. For example:\n\n```go\nparams := FooParams{\n\tName: SDK_PackageName.F("hello"),\n\n\t// Explicitly send `"description": null`\n\tDescription: SDK_PackageName.Null[string](),\n\n\tPoint: SDK_PackageName.F(SDK_PackageName.Point{\n\t\tX: SDK_PackageName.Int(0),\n\t\tY: SDK_PackageName.Int(1),\n\n\t\t// In cases where the API specifies a given type,\n\t\t// but you want to send something else, use `Raw`:\n\t\tZ: SDK_PackageName.Raw[int64](0.01), // sends a float\n\t}),\n}\n```\n\n### Response objects\n\nAll fields in response structs are value types (not pointers or wrappers).\n\nIf a given field is `null`, not present, or invalid, the corresponding field\nwill simply be its zero value.\n\nAll response structs also include a special `JSON` field, containing more detailed\ninformation about each property, which you can use like so:\n\n```go\nif res.Name == "" {\n\t// true if `"name"` is either not present or explicitly null\n\tres.JSON.Name.IsNull()\n\n\t// true if the `"name"` key was not present in the response JSON at all\n\tres.JSON.Name.IsMissing()\n\n\t// When the API returns data that cannot be coerced to the expected type:\n\tif res.JSON.Name.IsInvalid() {\n\t\traw := res.JSON.Name.Raw()\n\n\t\tlegacyName := struct{\n\t\t\tFirst string `json:"first"`\n\t\t\tLast  string `json:"last"`\n\t\t}{}\n\t\tjson.Unmarshal([]byte(raw), &legacyName)\n\t\tname = legacyName.First + " " + legacyName.Last\n\t}\n}\n```\n\nThese `.JSON` structs also include an `Extras` map containing\nany properties in the json response that were not specified\nin the struct. This can be useful for API features not yet\npresent in the SDK.\n\n```go\nbody := res.JSON.ExtraFields["my_unexpected_field"].Raw()\n```\n\n### RequestOptions\n\nThis library uses the functional options pattern. Functions defined in the\n`SDK_PackageOptionName` package return a `RequestOption`, which is a closure that mutates a\n`RequestConfig`. These options can be supplied to the client or at individual\nrequests. For example:\n\n```go\nclient := SDK_PackageName.SDK_ClientInitializerName(\n\t// Adds a header to every request made by the client\n\tSDK_PackageOptionName.WithHeader("X-Some-Header", "custom_header_info"),\n)\n\nclient.Parties.Accounts.List(context.TODO(), ...,\n\t// Override the header\n\tSDK_PackageOptionName.WithHeader("X-Some-Header", "some_other_custom_header_info"),\n\t// Add an undocumented field to the request body, using sjson syntax\n\tSDK_PackageOptionName.WithJSONSet("some.json.path", map[string]string{"my": "object"}),\n)\n```\n\nSee the [full list of request options](https://pkg.go.dev/github.com/plumery/plumery-go/SDK_PackageOptionName).\n\n### Pagination\n\nThis library provides some conveniences for working with paginated list endpoints.\n\nYou can use `.ListAutoPaging()` methods to iterate through items across all pages:\n\n\n\nOr you can use simple `.List()` methods to fetch a single page and receive a standard response object\nwith additional helper methods like `.GetNextPage()`, e.g.:\n\n\n\n### Errors\n\nWhen the API returns a non-success status code, we return an error with type\n`*SDK_PackageName.Error`. This contains the `StatusCode`, `*http.Request`, and\n`*http.Response` values of the request, as well as the JSON of the error body\n(much like other response objects in the SDK).\n\nTo handle errors, we recommend that you use the `errors.As` pattern:\n\n```go\n_, err := client.Parties.Accounts.List(\n\tcontext.TODO(),\n\t"REPLACE_ME",\n\tplumery.PartyAccountListParams{},\n)\nif err != nil {\n\tvar apierr *plumery.Error\n\tif errors.As(err, &apierr) {\n\t\tprintln(string(apierr.DumpRequest(true)))  // Prints the serialized HTTP request\n\t\tprintln(string(apierr.DumpResponse(true))) // Prints the serialized HTTP response\n\t}\n\tpanic(err.Error()) // GET "/api/v1/parties/{partyId}/accounts": 400 Bad Request { ... }\n}\n```\n\nWhen other errors occur, they are returned unwrapped; for example,\nif HTTP transport fails, you might receive `*url.Error` wrapping `*net.OpError`.\n\n### Timeouts\n\nRequests do not time out by default; use context to configure a timeout for a request lifecycle.\n\nNote that if a request is [retried](#retries), the context timeout does not start over.\nTo set a per-retry timeout, use `SDK_PackageOptionName.WithRequestTimeout()`.\n\n```go\n// This sets the timeout for the request, including all the retries.\nctx, cancel := context.WithTimeout(context.Background(), 5*time.Minute)\ndefer cancel()\nclient.Parties.Accounts.List(\n\tctx,\n\t"REPLACE_ME",\n\tplumery.PartyAccountListParams{},\n\t// This sets the per-retry timeout\n\toption.WithRequestTimeout(20*time.Second),\n)\n```\n\n### File uploads\n\nRequest parameters that correspond to file uploads in multipart requests are typed as\n`param.Field[io.Reader]`. The contents of the `io.Reader` will by default be sent as a multipart form\npart with the file name of "anonymous_file" and content-type of "application/octet-stream".\n\nThe file name and content-type can be customized by implementing `Name() string` or `ContentType()\nstring` on the run-time type of `io.Reader`. Note that `os.File` implements `Name() string`, so a\nfile returned by `os.Open` will be sent with the file name on disk.\n\nWe also provide a helper `SDK_PackageName.FileParam(reader io.Reader, filename string, contentType string)`\nwhich can be used to wrap any `io.Reader` with the appropriate file name and content type.\n\n```go\n// A file from the file system\nfile, err := os.Open("/path/to/file")\nplumery.LoanApplicationUploadDocumentParams{\n\tDocumentType: plumery.F(plumery.LoanApplicationUploadDocumentParamsDocumentTypeIncomeProof),\n\tFile:         plumery.F[io.Reader](file),\n\tFilename:     plumery.F("filename"),\n}\n\n// A file from a string\nplumery.LoanApplicationUploadDocumentParams{\n\tDocumentType: plumery.F(plumery.LoanApplicationUploadDocumentParamsDocumentTypeIncomeProof),\n\tFile:         plumery.F[io.Reader](strings.NewReader("my file contents")),\n\tFilename:     plumery.F("filename"),\n}\n\n// With a custom filename and contentType\nplumery.LoanApplicationUploadDocumentParams{\n\tDocumentType: plumery.F(plumery.LoanApplicationUploadDocumentParamsDocumentTypeIncomeProof),\n\tFile:         plumery.FileParam(strings.NewReader(`{"hello": "foo"}`), "file.go", "application/json"),\n\tFilename:     plumery.F("filename"),\n}\n```\n\n### Retries\n\nCertain errors will be automatically retried 2 times by default, with a short exponential backoff.\nWe retry by default all connection errors, 408 Request Timeout, 409 Conflict, 429 Rate Limit,\nand >=500 Internal errors.\n\nYou can use the `WithMaxRetries` option to configure or disable this:\n\n```go\n// Configure the default for all requests:\nclient := plumery.NewClient(\n\toption.WithMaxRetries(0), // default is 2\n)\n\n// Override per-request:\nclient.Parties.Accounts.List(\n\tcontext.TODO(),\n\t"REPLACE_ME",\n\tplumery.PartyAccountListParams{},\n\toption.WithMaxRetries(5),\n)\n```\n\n\n### Accessing raw response data (e.g. response headers)\n\nYou can access the raw HTTP response data by using the `option.WithResponseInto()` request option. This is useful when\nyou need to examine response headers, status codes, or other details.\n\n```go\n// Create a variable to store the HTTP response\nvar response *http.Response\naccounts, err := client.Parties.Accounts.List(\n\tcontext.TODO(),\n\t"REPLACE_ME",\n\tplumery.PartyAccountListParams{},\n\toption.WithResponseInto(&response),\n)\nif err != nil {\n\t// handle error\n}\nfmt.Printf("%+v\\n", accounts)\n\nfmt.Printf("Status Code: %d\\n", response.StatusCode)\nfmt.Printf("Headers: %+#v\\n", response.Header)\n```\n\n### Making custom/undocumented requests\n\nThis library is typed for convenient access to the documented API. If you need to access undocumented\nendpoints, params, or response properties, the library can still be used.\n\n#### Undocumented endpoints\n\nTo make requests to undocumented endpoints, you can use `client.Get`, `client.Post`, and other HTTP verbs.\n`RequestOptions` on the client, such as retries, will be respected when making these requests.\n\n```go\nvar (\n    // params can be an io.Reader, a []byte, an encoding/json serializable object,\n    // or a "…Params" struct defined in this library.\n    params map[string]interface{}\n\n    // result can be an []byte, *http.Response, a encoding/json deserializable object,\n    // or a model defined in this library.\n    result *http.Response\n)\nerr := client.Post(context.Background(), "/unspecified", params, &result)\nif err != nil {\n    …\n}\n```\n\n#### Undocumented request params\n\nTo make requests using undocumented parameters, you may use either the `SDK_PackageOptionName.WithQuerySet()`\nor the `SDK_PackageOptionName.WithJSONSet()` methods.\n\n```go\nparams := FooNewParams{\n    ID:   SDK_PackageName.F("id_xxxx"),\n    Data: SDK_PackageName.F(FooNewParamsData{\n        FirstName: SDK_PackageName.F("John"),\n    }),\n}\nclient.Foo.New(context.Background(), params, SDK_PackageOptionName.WithJSONSet("data.last_name", "Doe"))\n```\n\n#### Undocumented response properties\n\nTo access undocumented response properties, you may either access the raw JSON of the response as a string\nwith `result.JSON.RawJSON()`, or get the raw JSON of a particular field on the result with\n`result.JSON.Foo.Raw()`.\n\nAny fields that are not present on the response struct will be saved and can be accessed by `result.JSON.ExtraFields()` which returns the extra fields as a `map[string]Field`.\n\n### Middleware\n\nWe provide `SDK_PackageOptionName.WithMiddleware` which applies the given\nmiddleware to requests.\n\n```go\nfunc Logger(req *http.Request, next SDK_PackageOptionName.MiddlewareNext) (res *http.Response, err error) {\n\t// Before the request\n\tstart := time.Now()\n\tLogReq(req)\n\n\t// Forward the request to the next handler\n\tres, err = next(req)\n\n\t// Handle stuff after the request\n\tend := time.Now()\n\tLogRes(res, err, start - end)\n\n    return res, err\n}\n\nclient := SDK_PackageName.SDK_ClientInitializerName(\n\tSDK_PackageOptionName.WithMiddleware(Logger),\n)\n```\n\nWhen multiple middlewares are provided as variadic arguments, the middlewares\nare applied left to right. If `SDK_PackageOptionName.WithMiddleware` is given\nmultiple times, for example first in the client then the method, the\nmiddleware in the client will run first and the middleware given in the method\nwill run next.\n\nYou may also replace the default `http.Client` with\n`SDK_PackageOptionName.WithHTTPClient(client)`. Only one http client is\naccepted (this overwrites any previous client) and receives requests after any\nmiddleware has been applied.\n\n## Semantic versioning\n\nThis package generally follows [SemVer](https://semver.org/spec/v2.0.0.html) conventions, though certain backwards-incompatible changes may be released as minor versions:\n\n1. Changes to library internals which are technically public but not intended or documented for external use. _(Please open a GitHub issue to let us know if you are relying on such internals.)_\n2. Changes that we do not expect to impact the vast majority of users in practice.\n\nWe take backwards-compatibility seriously and work hard to ensure you can rely on a smooth upgrade experience.\n\nWe are keen for your feedback; please open an [issue](https://www.github.com/plumery/plumery-go/issues) with questions, bugs, or suggestions.\n\n## Contributing\n\nSee [the contributing documentation](./CONTRIBUTING.md).\n',
  },
  {
    language: 'java',
    content:
      '# Plumery Java API Library\n\n\n[![Maven Central](https://img.shields.io/maven-central/v/com.plumery.api/plumery-java)](https://central.sonatype.com/artifact/com.plumery.api/plumery-java/0.0.1)\n[![javadoc](https://javadoc.io/badge2/com.plumery.api/plumery-java/javadoc.svg)](https://javadoc.io/doc/com.plumery.api/plumery-java/0.0.1)\n\n\nThe Plumery Java SDK provides convenient access to the [Plumery REST API](https://plumery.stldocs.app/api)   from applications written in Java.\n\nThe Plumery Java SDK is similar to the Plumery Kotlin SDK but with minor differences that       make it more ergonomic for use in Java, such as `Optional` instead of nullable values, `Stream`       instead of `Sequence`, and `CompletableFuture` instead of suspend functions.\n\nIt is generated with [Stainless](https://www.stainless.com/).\n\n## MCP Server\n\nUse the Plumery MCP Server to enable AI assistants to interact with this API, allowing them to explore endpoints, make test requests, and use documentation to help integrate this SDK into your application.\n\n[![Add to Cursor](https://cursor.com/deeplink/mcp-install-dark.svg)](https://cursor.com/en-US/install-mcp?name=plumery-mcp&config=eyJuYW1lIjoicGx1bWVyeS1tY3AiLCJ0cmFuc3BvcnQiOiJodHRwIiwidXJsIjoiaHR0cHM6Ly9wbHVtZXJ5LnN0bG1jcC5jb20iLCJoZWFkZXJzIjp7IkNvb2tpZSI6Ik15IFNlc3Npb24ifX0)\n[![Install in VS Code](https://img.shields.io/badge/_-Add_to_VS_Code-blue?style=for-the-badge&logo=data:image/svg%2bxml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGZpbGw9Im5vbmUiIHZpZXdCb3g9IjAgMCA0MCA0MCI+PHBhdGggZmlsbD0iI0VFRSIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMzAuMjM1IDM5Ljg4NGEyLjQ5MSAyLjQ5MSAwIDAgMS0xLjc4MS0uNzNMMTIuNyAyNC43OGwtMy40NiAyLjYyNC0zLjQwNiAyLjU4MmExLjY2NSAxLjY2NSAwIDAgMS0xLjA4Mi4zMzggMS42NjQgMS42NjQgMCAwIDEtMS4wNDYtLjQzMWwtMi4yLTJhMS42NjYgMS42NjYgMCAwIDEgMC0yLjQ2M0w3LjQ1OCAyMCA0LjY3IDE3LjQ1MyAxLjUwNyAxNC41N2ExLjY2NSAxLjY2NSAwIDAgMSAwLTIuNDYzbDIuMi0yYTEuNjY1IDEuNjY1IDAgMCAxIDIuMTMtLjA5N2w2Ljg2MyA1LjIwOUwyOC40NTIuODQ0YTIuNDg4IDIuNDg4IDAgMCAxIDEuODQxLS43MjljLjM1MS4wMDkuNjk5LjA5MSAxLjAxOS4yNDVsOC4yMzYgMy45NjFhMi41IDIuNSAwIDAgMSAxLjQxNSAyLjI1M3YuMDk5LS4wNDVWMzMuMzd2LS4wNDUuMDk1YTIuNTAxIDIuNTAxIDAgMCAxLTEuNDE2IDIuMjU3bC04LjIzNSAzLjk2MWEyLjQ5MiAyLjQ5MiAwIDAgMS0xLjA3Ny4yNDZabS43MTYtMjguOTQ3LTExLjk0OCA5LjA2MiAxMS45NTIgOS4wNjUtLjAwNC0xOC4xMjdaIi8+PC9zdmc+)](https://vscode.stainless.com/mcp/%7B%22name%22%3A%22plumery-mcp%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fplumery.stlmcp.com%22%2C%22headers%22%3A%7B%22Cookie%22%3A%22My%20Session%22%7D%7D)\n\n> Note: You may need to set environment variables in your MCP client.\n\nThe REST API documentation can be found on [plumery.stldocs.app](https://plumery.stldocs.app/api). Javadocs are available on [javadoc.io](https://javadoc.io/doc/com.plumery.api/plumery-java/0.0.1).\n\n## Installation\n\n### Gradle\n\n~~~kotlin\nimplementation("com.plumery.api:plumery-java:0.0.1")\n~~~\n\n### Maven\n\n~~~xml\n<dependency>\n  <groupId>com.plumery.api</groupId>\n  <artifactId>plumery-java</artifactId>\n  <version>0.0.1</version>\n</dependency>\n~~~\n\n## Requirements\n\nThis library requires Java 8 or later.\n\n## Usage\n\n```java\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.parties.accounts.AccountListParams;\nimport com.plumery.api.models.parties.accounts.AccountListResponse;\n\nPlumeryClient client = PlumeryOkHttpClient.builder()\n    // Configures using the `plumery.baseUrl` system property\n    // Or configures using the `PLUMERY_BASE_URL` environment variable\n    .fromEnv()\n    .session("My Session")\n    .build();\n\nAccountListResponse accounts = client.parties().accounts().list("REPLACE_ME");\n```\n\n## Client configuration\n\nConfigure the client using system properties or environment variables:\n\n```java\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\n\nPlumeryClient client = PlumeryOkHttpClient.builder()\n    // Configures using the `plumery.baseUrl` system property\n    // Or configures using the `PLUMERY_BASE_URL` environment variable\n    .fromEnv()\n    .session("My Session")\n    .build();\n```\n\nOr manually:\n\n```java\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\n\nPlumeryClient client = PlumeryOkHttpClient.builder()\n    .session("My Session")\n    .build();\n```\n\nOr using a combination of the two approaches:\n\n```java\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\n\nPlumeryClient client = PlumeryOkHttpClient.builder()\n    // Configures using the `plumery.baseUrl` system property\n    // Or configures using the `PLUMERY_BASE_URL` environment variable\n    .fromEnv()\n    .session("My Session")\n    .build();\n```\n\nSee this table for the available options:\n\n| Setter    | System property   | Environment variable | Required | Default value               |\n| --------- | ----------------- | -------------------- | -------- | --------------------------- |\n| `baseUrl` | `plumery.baseUrl` | `PLUMERY_BASE_URL`   | true     | `"https://api.plumery.com"` |\n\nSystem properties take precedence over environment variables.\n\n> [!TIP]\n> Don\'t create more than one client in the same application. Each client has a connection pool and\n> thread pools, which are more efficient to share between requests.\n\n### Modifying configuration\n\nTo temporarily use a modified client configuration, while reusing the same connection and thread       pools, call `withOptions()` on any client or service:\n\n```java\nimport com.plumery.api.client.PlumeryClient;\n\nPlumeryClient clientWithOptions = client.withOptions(optionsBuilder -> {\n    optionsBuilder.baseUrl("https://example.com");\n    optionsBuilder.maxRetries(42);\n});\n```\n\nThe `withOptions()` method does not affect the original client or service.\n\n## Requests and responses\n\nTo send a request to the Plumery API, build an instance of some `Params` class and pass it to the     corresponding client method. When the response is received, it will be deserialized into an instance of     a Java class.\n\nFor example, `client.parties().accounts().list(...)` should be called with an instance of `AccountListParams`, and it     will return an instance of `AccountListResponse`.\n\n## Immutability\n\nEach class in the SDK has an associated   [builder](https://blogs.oracle.com/javamagazine/post/exploring-joshua-blochs-builder-design-pattern-in-java)   or factory method for constructing it.\n\nEach class is [immutable](https://docs.oracle.com/javase/tutorial/essential/concurrency/immutable.html)   once constructed. If the class has an associated builder, then it has a `toBuilder()` method, which can   be used to convert it back to a builder for making a modified copy.\n\nBecause each class is immutable, builder modification will _never_ affect already built class instances.\n\n## Asynchronous execution\n\nThe default client is synchronous. To switch to asynchronous execution, call the `async()` method:\n\n```java\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.models.parties.accounts.AccountListParams;\nimport com.plumery.api.models.parties.accounts.AccountListResponse;\nimport java.util.concurrent.CompletableFuture;\n\nPlumeryClient client = PlumeryOkHttpClient.builder()\n    // Configures using the `plumery.baseUrl` system property\n    // Or configures using the `PLUMERY_BASE_URL` environment variable\n    .fromEnv()\n    .session("My Session")\n    .build();\n\nCompletableFuture<AccountListResponse> accounts = client.async().parties().accounts().list("REPLACE_ME");\n```\n\nOr create an asynchronous client from the beginning:\n\n```java\nimport com.plumery.api.client.PlumeryClientAsync;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClientAsync;\nimport com.plumery.api.models.parties.accounts.AccountListParams;\nimport com.plumery.api.models.parties.accounts.AccountListResponse;\nimport java.util.concurrent.CompletableFuture;\n\nPlumeryClientAsync client = PlumeryOkHttpClientAsync.builder()\n    // Configures using the `plumery.baseUrl` system property\n    // Or configures using the `PLUMERY_BASE_URL` environment variable\n    .fromEnv()\n    .session("My Session")\n    .build();\n\nCompletableFuture<AccountListResponse> accounts = client.parties().accounts().list("REPLACE_ME");\n```\n\nThe asynchronous client supports the same options as the synchronous one, except most methods return `CompletableFuture`s.\n\n\n\n## File uploads\n\nThe SDK defines methods that accept files.\n\nTo upload a file, pass a [`Path`](https://docs.oracle.com/javase/8/docs/api/java/nio/file/Path.html):\n\n```java\nimport com.plumery.api.models.loanapplications.LoanApplicationUploadDocumentParams;\nimport java.nio.file.Paths;\n\nLoanApplicationUploadDocumentParams params = LoanApplicationUploadDocumentParams.builder()\n    .loanApplicationId("36a22460-ebc8-4ffe-a213-1683c5a420c5")\n    .documentType(LoanApplicationUploadDocumentParams.DocumentType.INCOME_PROOF)\n    .filename("filename")\n    .file(Paths.get("/path/to/file"))\n    .build();\nclient.loanApplications().uploadDocument(params);\n```\n\nOr an arbitrary [`InputStream`](https://docs.oracle.com/javase/8/docs/api/java/io/InputStream.html):\n\n```java\nimport com.plumery.api.models.loanapplications.LoanApplicationUploadDocumentParams;\nimport java.net.URL;\n\nLoanApplicationUploadDocumentParams params = LoanApplicationUploadDocumentParams.builder()\n    .loanApplicationId("36a22460-ebc8-4ffe-a213-1683c5a420c5")\n    .documentType(LoanApplicationUploadDocumentParams.DocumentType.INCOME_PROOF)\n    .filename("filename")\n    .file(new URL("https://example.com//path/to/file").openStream())\n    .build();\nclient.loanApplications().uploadDocument(params);\n```\n\nOr a `byte[]` array:\n\n```java\nimport com.plumery.api.models.loanapplications.LoanApplicationUploadDocumentParams;\n\nLoanApplicationUploadDocumentParams params = LoanApplicationUploadDocumentParams.builder()\n    .loanApplicationId("36a22460-ebc8-4ffe-a213-1683c5a420c5")\n    .documentType(LoanApplicationUploadDocumentParams.DocumentType.INCOME_PROOF)\n    .filename("filename")\n    .file("content".getBytes())\n    .build();\nclient.loanApplications().uploadDocument(params);\n```\n\nNote that when passing a non-`Path` its filename is unknown so it will not be included in the request.     To manually set a filename, pass a [`MultipartField`](plumery-java-core/src/main/kotlin/com/plumery/api/core/Values.kt):\n\n```java\nimport com.plumery.api.core.MultipartField;\nimport com.plumery.api.models.loanapplications.LoanApplicationUploadDocumentParams;\nimport java.io.InputStream;\nimport java.net.URL;\n\nLoanApplicationUploadDocumentParams params = LoanApplicationUploadDocumentParams.builder()\n    .loanApplicationId("36a22460-ebc8-4ffe-a213-1683c5a420c5")\n    .documentType(LoanApplicationUploadDocumentParams.DocumentType.INCOME_PROOF)\n    .filename("filename")\n    .file(MultipartField.<InputStream>builder()\n        .value(new URL("https://example.com//path/to/file").openStream())\n        .filename("/path/to/file")\n        .build())\n    .build();\nclient.loanApplications().uploadDocument(params);\n```\n\n## Binary responses\n\nThe SDK defines methods that return binary responses, which are used for API responses that shouldn\'t     necessarily be parsed, like non-JSON data.\n\nThese methods return [`HttpResponse`](plumery-java-core/src/main/kotlin/com/plumery/api/core/http/HttpResponse.kt):\n\n```java\nimport com.plumery.api.core.http.HttpResponse;\nimport com.plumery.api.models.parties.transactions.TransactionGenerateSnapshotParams;\n\nTransactionGenerateSnapshotParams params = TransactionGenerateSnapshotParams.builder()\n    .partyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n    .transactionId("5f0d3de8-d521-11ed-afa1-0242ac120002")\n    .build();\nHttpResponse response = client.parties().transactions().generateSnapshot(params);\n```\n\nTo save the response content to a file, use the     [`Files.copy(...)`](https://docs.oracle.com/javase/8/docs/api/java/nio/file/Files.html#copy-java.io.InputStream-java.nio.file.Path-java.nio.file.CopyOption...-)     method:\n\n```java\nimport com.plumery.api.core.http.HttpResponse;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\nimport java.nio.file.StandardCopyOption;\n\ntry (HttpResponse response = client.parties().transactions().generateSnapshot(params)) {\n    Files.copy(\n        response.body(),\n        Paths.get(path),\n        StandardCopyOption.REPLACE_EXISTING\n    );\n} catch (Exception e) {\n    System.out.println("Something went wrong!");\n    throw new RuntimeException(e);\n}\n```\n\nOr transfer the response content to any     [`OutputStream`](https://docs.oracle.com/javase/8/docs/api/java/io/OutputStream.html):\n\n```java\nimport com.plumery.api.core.http.HttpResponse;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\ntry (HttpResponse response = client.parties().transactions().generateSnapshot(params)) {\n    response.body().transferTo(Files.newOutputStream(Paths.get(path)));\n} catch (Exception e) {\n    System.out.println("Something went wrong!");\n    throw new RuntimeException(e);\n}\n```\n\n## Raw responses\n\nThe SDK defines methods that deserialize responses into instances of Java classes.       However, these methods don\'t provide access to the response headers, status code, or the raw response       body.\n\nTo access this data, prefix any HTTP method call on a client or service with `withRawResponse()`:\n\n```java\nimport com.plumery.api.core.http.Headers;\nimport com.plumery.api.core.http.HttpResponseFor;\nimport com.plumery.api.models.parties.accounts.AccountListParams;\nimport com.plumery.api.models.parties.accounts.AccountListResponse;\n\nHttpResponseFor<AccountListResponse> accounts = client.parties().accounts().withRawResponse().list("REPLACE_ME");\n\nint statusCode = accounts.statusCode();\nHeaders headers = accounts.headers();\n```\n\nYou can still deserialize the response into an instance of a Java class if needed:\n\n```java\nimport com.plumery.api.models.parties.accounts.AccountListResponse;\n\nAccountListResponse parsedAccounts = accounts.parse();\n```\n\n## Error handling\n\nThe SDK throws custom unchecked exception types:\n\n- [`PlumeryServiceException`](plumery-java-core/src/main/kotlin/com/plumery/api/errors/PlumeryServiceException.kt): Base class for HTTP errors. See this table for which exception       subclass is thrown for each HTTP status code:\n\n  | Status | Exception                                          |\n  | ------ | -------------------------------------------------- |\n  | 400    | [`BadRequestException`](plumery-java-core/src/main/kotlin/com/plumery/api/errors/BadRequestException.kt)           |\n  | 401    | [`UnauthorizedException`](plumery-java-core/src/main/kotlin/com/plumery/api/errors/UnauthorizedException.kt)         |\n  | 403    | [`PermissionDeniedException`](plumery-java-core/src/main/kotlin/com/plumery/api/errors/PermissionDeniedException.kt)     |\n  | 404    | [`NotFoundException`](plumery-java-core/src/main/kotlin/com/plumery/api/errors/NotFoundException.kt)             |\n  | 422    | [`UnprocessableEntityException`](plumery-java-core/src/main/kotlin/com/plumery/api/errors/UnprocessableEntityException.kt)  |\n  | 429    | [`RateLimitException`](plumery-java-core/src/main/kotlin/com/plumery/api/errors/RateLimitException.kt)            |\n  | 5xx    | [`InternalServerException`](plumery-java-core/src/main/kotlin/com/plumery/api/errors/InternalServerException.kt)       |\n  | others | [`UnexpectedStatusCodeException`](plumery-java-core/src/main/kotlin/com/plumery/api/errors/UnexpectedStatusCodeException.kt) |\n\n- [`PlumeryIoException`](plumery-java-core/src/main/kotlin/com/plumery/api/errors/PlumeryIoException.kt): I/O networking errors.\n\n- [`PlumeryRetryableException`](plumery-java-core/src/main/kotlin/com/plumery/api/errors/PlumeryRetryableException.kt): Generic error indicating a failure that could be retried by the client.\n\n- [`PlumeryInvalidDataException`](plumery-java-core/src/main/kotlin/com/plumery/api/errors/PlumeryInvalidDataException.kt): Failure to interpret successfully parsed data. For example,       when accessing a property that\'s supposed to be required, but the API unexpectedly omitted it from the       response.\n\n- [`PlumeryException`](plumery-java-core/src/main/kotlin/com/plumery/api/errors/PlumeryException.kt): Base class for all exceptions. Most errors will result in one of the       previously mentioned ones, but completely generic errors may be thrown using the base class.\n\n\n\n## Logging\n\nEnable logging by setting the `PLUMERY_LOG` environment variable to   `info`:\n\n```sh\nexport PLUMERY_LOG=info\n```\n\nOr to `debug` for more verbose logging:\n\n```sh\nexport PLUMERY_LOG=debug\n```\n\nOr configure the client manually using the `logLevel` method:\n\n```java\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.core.LogLevel;\n\nPlumeryClient client = PlumeryOkHttpClient.builder()\n    .fromEnv()\n    .logLevel(LogLevel.INFO)\n    .session("My Session")\n    .build();\n```\n\n## ProGuard and R8\n\nAlthough the SDK uses reflection, it is still usable with     [ProGuard](https://github.com/Guardsquare/proguard) and     [R8](https://developer.android.com/topic/performance/app-optimization/enable-app-optimization) because     `plumery-java-core` is published with a     [configuration file](plumery-java-core/src/main/resources/META-INF/proguard/plumery-java-core.pro) containing     [keep rules](https://www.guardsquare.com/manual/configuration/usage).\n\nProGuard and R8 should automatically detect and use the published rules, but you can also manually copy     the keep rules if necessary.\n\n\n\n\n\n## Jackson\n\nThe SDK depends on [Jackson](https://github.com/FasterXML/jackson) for JSON     serialization/deserialization. It is compatible with version 2.13.4 or higher,     but depends on version 2.18.2 by default.\n\nThe SDK throws an exception if it detects an incompatible Jackson version at runtime (e.g. if the     default version was overridden in your Maven or Gradle config).\n\nIf the SDK threw an exception, but you\'re _certain_ the version is compatible, then disable the version     check using the `checkJacksonVersionCompatibility` on [`PlumeryOkHttpClient`](plumery-java-client-okhttp/src/main/kotlin/com/plumery/api/client/okhttp/PlumeryOkHttpClient.kt) or     [`PlumeryOkHttpClientAsync`](plumery-java-client-okhttp/src/main/kotlin/com/plumery/api/client/okhttp/PlumeryOkHttpClientAsync.kt).\n\n> [!CAUTION]\n> We make no guarantee that the SDK works correctly when the Jackson version check is disabled.\n\nAlso note that there are bugs in older Jackson versions that can affect the SDK. We don\'t work around all     Jackson bugs ([example](https://github.com/FasterXML/jackson-databind/issues/3240)) and expect users to     upgrade Jackson for those instead.\n\n## Network options\n\n### Retries\n\nThe SDK automatically retries 2 times by default, with a short exponential backoff between requests.\n\nOnly the following error types are retried:\n- Connection errors (for example, due to a network connectivity problem)\n- 408 Request Timeout\n- 409 Conflict\n- 429 Rate Limit\n- 5xx Internal\n\nThe API may also explicitly instruct the SDK to retry or not retry a request.\n\nTo set a custom number of retries, configure the client using the `maxRetries` method:\n\n```java\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\n\nPlumeryClient client = PlumeryOkHttpClient.builder()\n    .fromEnv()\n    .maxRetries(4)\n    .session("My Session")\n    .build();\n```\n\n### Timeouts\n\nRequests time out after 1 minute by default.\n\nTo set a custom timeout, configure the method call using the `timeout` method:\n\n```java\nimport com.plumery.api.models.parties.accounts.AccountListResponse;\n\nAccountListResponse accounts = client.parties().accounts().list(RequestOptions.builder().timeout(Duration.ofSeconds(30)).build());\n```\n\nOr configure the default for all method calls at the client level:\n\n```java\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport java.time.Duration;\n\nPlumeryClient client = PlumeryOkHttpClient.builder()\n    .fromEnv()\n    .timeout(Duration.ofSeconds(30))\n    .session("My Session")\n    .build();\n```\n\n### Proxies\n\nTo route requests through a proxy, configure the client using the `proxy` method:\n\n```java\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport java.net.InetSocketAddress;\nimport java.net.Proxy;\n\nPlumeryClient client = PlumeryOkHttpClient.builder()\n    .fromEnv()\n    .proxy(new Proxy(\n      Proxy.Type.HTTP, new InetSocketAddress(\n        "https://example.com", 8080\n      )\n    ))\n    .session("My Session")\n    .build();\n```\n\nIf the proxy responds with `407 Proxy Authentication Required`, supply credentials by also   configuring `proxyAuthenticator`:\n\n```java\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport com.plumery.api.core.http.ProxyAuthenticator;\n\nPlumeryClient client = PlumeryOkHttpClient.builder()\n    .fromEnv()\n    .proxy(...)\n    // Or a custom implementation of `ProxyAuthenticator`.\n    .proxyAuthenticator(ProxyAuthenticator.basic("username", "password"))\n    .session("My Session")\n    .build();\n```\n\n### Connection pooling\n\nTo customize the underlying OkHttp connection pool, configure the client using the   `maxIdleConnections` and `keepAliveDuration` methods:\n\n```java\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\nimport java.time.Duration;\n\nPlumeryClient client = PlumeryOkHttpClient.builder()\n    .fromEnv()\n    // If `maxIdleConnections` is set, then `keepAliveDuration` must be set, and vice versa.\n    .maxIdleConnections(10)\n    .keepAliveDuration(Duration.ofMinutes(2))\n    .session("My Session")\n    .build();\n```\n\nIf both options are unset, OkHttp\'s default connection pool settings are used.\n\n### HTTPS\n\n> [!NOTE]\n> Most applications should not call these methods, and instead use the system defaults. The defaults include\n> special optimizations that can be lost if the implementations are modified.\n\nTo configure how HTTPS connections are secured, configure the client using the `sslSocketFactory`,   `trustManager`, and `hostnameVerifier` methods:\n\n```java\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\n\nPlumeryClient client = PlumeryOkHttpClient.builder()\n    .fromEnv()\n    // If `sslSocketFactory` is set, then `trustManager` must be set, and vice versa.\n    .sslSocketFactory(yourSSLSocketFactory)\n    .trustManager(yourTrustManager)\n    .hostnameVerifier(yourHostnameVerifier)\n    .session("My Session")\n    .build();\n```\n\n\n\n### Custom HTTP client\n\nThe SDK consists of three artifacts:\n- `plumery-java-core`\n  - Contains core SDK logic\n  - Does not depend on [OkHttp](https://square.github.io/okhttp)\n  - Exposes [`PlumeryClient`](plumery-java-core/src/main/kotlin/com/plumery/api/client/PlumeryClient.kt), [`PlumeryClientAsync`](plumery-java-core/src/main/kotlin/com/plumery/api/client/PlumeryClientAsync.kt),             [`PlumeryClientImpl`](plumery-java-core/src/main/kotlin/com/plumery/api/client/PlumeryClientImpl.kt), and [`PlumeryClientAsyncImpl`](plumery-java-core/src/main/kotlin/com/plumery/api/client/PlumeryClientAsyncImpl.kt), all of which can             work with any HTTP client\n- `plumery-java-client-okhttp`\n  - Depends on [OkHttp](https://square.github.io/okhttp)\n  - Exposes [`PlumeryOkHttpClient`](plumery-java-client-okhttp/src/main/kotlin/com/plumery/api/client/okhttp/PlumeryOkHttpClient.kt) and [`PlumeryOkHttpClientAsync`](plumery-java-client-okhttp/src/main/kotlin/com/plumery/api/client/okhttp/PlumeryOkHttpClientAsync.kt), which             provide a way to construct [`PlumeryClientImpl`](plumery-java-core/src/main/kotlin/com/plumery/api/client/PlumeryClientImpl.kt) and             [`PlumeryClientAsyncImpl`](plumery-java-core/src/main/kotlin/com/plumery/api/client/PlumeryClientAsyncImpl.kt), respectively, using OkHttp\n- `plumery-java`\n  - Depends on and exposes the APIs of both `plumery-java-core` and `plumery-java-client-okhttp`\n  - Does not have its own logic\n\nThis structure allows replacing the SDK\'s default HTTP client without pulling in unnecessary dependencies.\n\n#### Customized [`OkHttpClient`](https://square.github.io/okhttp/3.x/okhttp/okhttp3/OkHttpClient.html)\n\n> [!TIP]\n> Try the available [network options](#network-options) before replacing the default client.\n\nTo use a customized `OkHttpClient`:\n\n1. Replace your [`plumery-java` dependency](#installation) with `plumery-java-core`\n2. Copy `plumery-java-client-okhttp`\'s [`OkHttpClient`](plumery-java-client-okhttp/src/main/kotlin/com/plumery/api/client/okhttp/OkHttpClient.kt) class into your code and        customize it\n3. Construct [`PlumeryClientImpl`](plumery-java-core/src/main/kotlin/com/plumery/api/client/PlumeryClientImpl.kt) or [`PlumeryClientAsyncImpl`](plumery-java-core/src/main/kotlin/com/plumery/api/client/PlumeryClientAsyncImpl.kt), similarly to        [`PlumeryOkHttpClient`](plumery-java-client-okhttp/src/main/kotlin/com/plumery/api/client/okhttp/PlumeryOkHttpClient.kt) or [`PlumeryOkHttpClientAsync`](plumery-java-client-okhttp/src/main/kotlin/com/plumery/api/client/okhttp/PlumeryOkHttpClientAsync.kt), using your        customized client\n\n### Completely custom HTTP client\n\nTo use a completely custom HTTP client:\n\n1. Replace your [`plumery-java` dependency](#installation) with `plumery-java-core`\n2. Write a class that implements the [`HttpClient`](plumery-java-core/src/main/kotlin/com/plumery/api/core/http/HttpClient.kt) interface\n3. Construct [`PlumeryClientImpl`](plumery-java-core/src/main/kotlin/com/plumery/api/client/PlumeryClientImpl.kt) or [`PlumeryClientAsyncImpl`](plumery-java-core/src/main/kotlin/com/plumery/api/client/PlumeryClientAsyncImpl.kt), similarly to        [`PlumeryOkHttpClient`](plumery-java-client-okhttp/src/main/kotlin/com/plumery/api/client/okhttp/PlumeryOkHttpClient.kt) or [`PlumeryOkHttpClientAsync`](plumery-java-client-okhttp/src/main/kotlin/com/plumery/api/client/okhttp/PlumeryOkHttpClientAsync.kt), using your new        client class\n\n## Undocumented API functionality\n\nThe SDK is typed for convenient usage of the documented API. However, it also supports working with undocumented or not yet supported parts of the API.\n\n### Parameters\n\nTo set undocumented parameters, call the `putAdditionalHeader`, `putAdditionalQueryParam`, or       `putAdditionalBodyProperty` methods on any `Params` class:\n\n```java\nimport com.plumery.api.core.JsonValue;\nimport com.plumery.api.models.parties.accounts.AccountListParams;\n\nAccountListParams params = AccountListParams.builder()\n    .putAdditionalHeader("Secret-Header", "42")\n    .putAdditionalQueryParam("secret_query_param", "42")\n    .putAdditionalBodyProperty("secretProperty", JsonValue.from("42"))\n    .build();\n```\n\nThese can be accessed on the built object later using the `_additionalHeaders()`,       `_additionalQueryParams()`, and `_additionalBodyProperties()` methods.\n\nTo set undocumented parameters on _nested_ headers, query params, or body classes, call the         `putAdditionalProperty` method on the nested class:\n\n```java\nimport com.plumery.api.core.JsonValue;\nimport com.plumery.api.models.userenrolments.UserEnrolmentSetIndividualPartyProfileParams;\n\nUserEnrolmentSetIndividualPartyProfileParams params = UserEnrolmentSetIndividualPartyProfileParams.builder()\n    .postalAddress(UserEnrolmentSetIndividualPartyProfileParams.PostalAddress.builder()\n        .putAdditionalProperty("secretProperty", JsonValue.from("42"))\n        .build())\n    .build();\n```\n\nThese properties can be accessed on the nested built object later using the         `_additionalProperties()` method.\n\nTo set a documented parameter or property to an undocumented or not yet supported _value_, pass a       [`JsonValue`](plumery-java-core/src/main/kotlin/com/plumery/api/core/Values.kt) object to its setter:\n\n```java\nimport com.plumery.api.models.parties.accounts.AccountListParams;\n\nAccountListParams params = AccountListParams.builder().build();\n```\n\nThe most straightforward way to create a [`JsonValue`](plumery-java-core/src/main/kotlin/com/plumery/api/core/Values.kt) is using its       `from(...)` method:\n\n```java\nimport com.plumery.api.core.JsonValue;\nimport java.util.List;\nimport java.util.Map;\n\n// Create primitive JSON values\nJsonValue nullValue = JsonValue.from(null);\nJsonValue booleanValue = JsonValue.from(true);\nJsonValue numberValue = JsonValue.from(42);\nJsonValue stringValue = JsonValue.from("Hello World!");\n\n// Create a JSON array value equivalent to `["Hello", "World"]`\nJsonValue arrayValue = JsonValue.from(List.of(\n  "Hello", "World"\n));\n\n// Create a JSON object value equivalent to `{ "a": 1, "b": 2 }`\nJsonValue objectValue = JsonValue.from(Map.of(\n  "a", 1,\n  "b", 2\n));\n\n// Create an arbitrarily nested JSON equivalent to:\n// {\n//   "a": [1, 2],\n//   "b": [3, 4]\n// }\nJsonValue complexValue = JsonValue.from(Map.of(\n  "a", List.of(\n    1, 2\n  ),\n  "b", List.of(\n    3, 4\n  )\n));\n```\n\nNormally a `Builder` class\'s `build` method will throw         [`IllegalStateException`](https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html)         if any required parameter or property is unset.\n\nTo forcibly omit a required parameter or property, pass [`JsonMissing`](plumery-java-core/src/main/kotlin/com/plumery/api/core/Values.kt):\n\n```java\nimport com.plumery.api.core.JsonMissing;\nimport com.plumery.api.models.parties.accounts.AccountListParams;\n\nAccountListParams params = AccountListParams.builder()\n    .partyId(JsonMissing.of())\n    .build();\n```\n\n### Response properties\n\nTo access undocumented response properties, call the `_additionalProperties()` method:\n\n```java\nimport com.plumery.api.core.JsonValue;\nimport java.util.Map;\n\nMap<String, JsonValue> additionalProperties = client.parties().accounts().list(params)._additionalProperties();\nJsonValue secretPropertyValue = additionalProperties.get("secretProperty");\n\nString result = secretPropertyValue.accept(new JsonValue.Visitor<>() {\n    @Override\n    public String visitNull() {\n        return "It\'s null!";\n    }\n\n    @Override\n    public String visitBoolean(boolean value) {\n        return "It\'s a boolean!";\n    }\n\n    @Override\n    public String visitNumber(Number value) {\n        return "It\'s a number!";\n    }\n\n    // Other methods include `visitMissing`, `visitString`, `visitArray`, and `visitObject`\n    // The default implementation of each unimplemented method delegates to `visitDefault`, which throws by default, but can also be overridden\n});\n```\n\nTo access a property\'s raw JSON value, which may be undocumented, call its `_` prefixed method:\n\n```java\nimport com.plumery.api.core.JsonField;\nimport java.util.Optional;\n\nJsonField<Object> field = client.parties().accounts().list(params)._field();\n\nif (field.isMissing()) {\n  // The property is absent from the JSON response\n} else if (field.isNull()) {\n  // The property was set to literal null\n} else {\n  // Check if value was provided as a string\n  // Other methods include `asNumber()`, `asBoolean()`, etc.\n  Optional<String> jsonString = field.asString();\n\n  // Try to deserialize into a custom type\n  MyClass myObject = field.asUnknown().orElseThrow().convert(MyClass.class);\n}\n```\n\n### Response validation\n\nIn rare cases, the API may return a response that doesn\'t match the expected type. For example, the SDK     may expect a property to contain a `String`, but the API could return something else.\n\nBy default, the SDK will not throw an exception in this case. It will throw     [`PlumeryInvalidDataException`](plumery-java-core/src/main/kotlin/com/plumery/api/errors/PlumeryInvalidDataException.kt) only if you directly access the property.\n\nValidating the response is _not_ forwards compatible with new types from the API for existing fields.\n\nIf you would still prefer to check that the response is completely well-typed upfront, then either call     `validate()`:\n\n```java\nimport com.plumery.api.models.parties.accounts.AccountListResponse;\n\nAccountListResponse accounts = client.parties().accounts().list(params).validate();\n```\n\nOr configure the method call to validate the response using the `responseValidation` method:\n\n```java\nimport com.plumery.api.models.parties.accounts.AccountListResponse;\n\nAccountListResponse accounts = client.parties().accounts().list(RequestOptions.builder().responseValidation(true).build());\n```\n\nOr configure the default for all method calls at the client level:\n\n```java\nimport com.plumery.api.client.PlumeryClient;\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient;\n\nPlumeryClient client = PlumeryOkHttpClient.builder()\n    .fromEnv()\n    .responseValidation(true)\n    .session("My Session")\n    .build();\n```\n\n## FAQ\n\n### Why don\'t you use plain `enum` classes?\n\nJava `enum` classes are not trivially   [forwards compatible](https://www.stainless.com/blog/making-java-enums-forwards-compatible). Using them in   the SDK could cause runtime exceptions if the API is updated to respond with a new enum value.\n\n### Why do you represent fields using `JsonField<T>` instead of just plain `T`?\n\nUsing `JsonField<T>` enables a few features:\n\n- Allowing usage of [undocumented API functionality](#undocumented-api-functionality)\n- Lazily [validating the API response against the expected shape](#response-validation)\n- Representing absent vs explicitly null values\n\n### Why don\'t you use [`data` classes](https://kotlinlang.org/docs/data-classes.html)?\n\nIt is not [backwards compatible to add new fields to a data class](https://kotlinlang.org/docs/api-guidelines-backward-compatibility.html#avoid-using-data-classes-in-your-api)   and we don\'t want to introduce a breaking change every time we add a field to a class.\n\n### Why don\'t you use checked exceptions?\n\nChecked exceptions are widely considered a mistake in the Java programming language. In fact, they were   omitted from Kotlin for this reason.\n\nChecked exceptions:\n\n- Are verbose to handle\n- Encourage error handling at the wrong level of abstraction, where nothing can be done about the error\n- Are tedious to propagate due to the [function coloring problem](https://journal.stuffwithstuff.com/2015/02/01/what-color-is-your-function)\n- Don\'t play well with lambdas (also due to the function coloring problem)\n\n## Semantic versioning\n\nThis package generally follows [SemVer](https://semver.org/spec/v2.0.0.html) conventions, though certain backwards-incompatible changes may be released as minor versions:\n\n1. Changes to library internals which are technically public but not intended or documented for external use. _(Please open a GitHub issue to let us know if you are relying on such internals.)_\n2. Changes that we do not expect to impact the vast majority of users in practice.\n\nWe take backwards-compatibility seriously and work hard to ensure you can rely on a smooth upgrade experience.\n\nWe are keen for your feedback; please open an [issue](https://www.github.com/stainless-sdks/plumery-java/issues) with questions, bugs, or suggestions.\n',
  },
  {
    language: 'kotlin',
    content:
      '# Plumery Kotlin API Library\n\n<!-- x-release-please-start-version -->\n[![Maven Central](https://img.shields.io/maven-central/v/com.plumery.api/plumery-kotlin)](https://central.sonatype.com/artifact/com.plumery.api/plumery-kotlin/0.0.1)\n\n<!-- x-release-please-end -->\n\nThe Plumery Kotlin SDK provides convenient access to the [Plumery REST API](https://plumery.stldocs.app/api)   from applications written in Kotlin.\n\n\n\nIt is generated with [Stainless](https://www.stainless.com/).\n\n## MCP Server\n\nUse the Plumery MCP Server to enable AI assistants to interact with this API, allowing them to explore endpoints, make test requests, and use documentation to help integrate this SDK into your application.\n\n[![Add to Cursor](https://cursor.com/deeplink/mcp-install-dark.svg)](https://cursor.com/en-US/install-mcp?name=plumery-mcp&config=eyJuYW1lIjoicGx1bWVyeS1tY3AiLCJ0cmFuc3BvcnQiOiJodHRwIiwidXJsIjoiaHR0cHM6Ly9wbHVtZXJ5LnN0bG1jcC5jb20iLCJoZWFkZXJzIjp7IkNvb2tpZSI6Ik15IFNlc3Npb24ifX0)\n[![Install in VS Code](https://img.shields.io/badge/_-Add_to_VS_Code-blue?style=for-the-badge&logo=data:image/svg%2bxml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGZpbGw9Im5vbmUiIHZpZXdCb3g9IjAgMCA0MCA0MCI+PHBhdGggZmlsbD0iI0VFRSIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMzAuMjM1IDM5Ljg4NGEyLjQ5MSAyLjQ5MSAwIDAgMS0xLjc4MS0uNzNMMTIuNyAyNC43OGwtMy40NiAyLjYyNC0zLjQwNiAyLjU4MmExLjY2NSAxLjY2NSAwIDAgMS0xLjA4Mi4zMzggMS42NjQgMS42NjQgMCAwIDEtMS4wNDYtLjQzMWwtMi4yLTJhMS42NjYgMS42NjYgMCAwIDEgMC0yLjQ2M0w3LjQ1OCAyMCA0LjY3IDE3LjQ1MyAxLjUwNyAxNC41N2ExLjY2NSAxLjY2NSAwIDAgMSAwLTIuNDYzbDIuMi0yYTEuNjY1IDEuNjY1IDAgMCAxIDIuMTMtLjA5N2w2Ljg2MyA1LjIwOUwyOC40NTIuODQ0YTIuNDg4IDIuNDg4IDAgMCAxIDEuODQxLS43MjljLjM1MS4wMDkuNjk5LjA5MSAxLjAxOS4yNDVsOC4yMzYgMy45NjFhMi41IDIuNSAwIDAgMSAxLjQxNSAyLjI1M3YuMDk5LS4wNDVWMzMuMzd2LS4wNDUuMDk1YTIuNTAxIDIuNTAxIDAgMCAxLTEuNDE2IDIuMjU3bC04LjIzNSAzLjk2MWEyLjQ5MiAyLjQ5MiAwIDAgMS0xLjA3Ny4yNDZabS43MTYtMjguOTQ3LTExLjk0OCA5LjA2MiAxMS45NTIgOS4wNjUtLjAwNC0xOC4xMjdaIi8+PC9zdmc+)](https://vscode.stainless.com/mcp/%7B%22name%22%3A%22plumery-mcp%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fplumery.stlmcp.com%22%2C%22headers%22%3A%7B%22Cookie%22%3A%22My%20Session%22%7D%7D)\n\n> Note: You may need to set environment variables in your MCP client.\n\nThe REST API documentation can be found on [plumery.stldocs.app](https://plumery.stldocs.app/api).\n\n## Installation\n\n<!-- x-release-please-start-version -->\n\n### Gradle\n\n~~~kotlin\nimplementation("com.plumery.api:plumery-kotlin:0.0.1")\n~~~\n\n### Maven\n\n~~~xml\n<dependency>\n  <groupId>com.plumery.api</groupId>\n  <artifactId>plumery-kotlin</artifactId>\n  <version>0.0.1</version>\n</dependency>\n~~~\n\n<!-- x-release-please-end -->\n\n## Requirements\n\nThis library requires Java 8 or later.\n\n## Usage\n\n```kotlin\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.parties.accounts.AccountListParams\nimport com.plumery.api.models.parties.accounts.AccountListResponse\n\nval client: PlumeryClient = PlumeryOkHttpClient.builder()\n    // Configures using the `plumery.baseUrl` system property\n    // Or configures using the `PLUMERY_BASE_URL` environment variable\n    .fromEnv()\n    .session("My Session")\n    .build()\n\nval accounts: AccountListResponse = client.parties().accounts().list("REPLACE_ME")\n```\n\n## Client configuration\n\nConfigure the client using system properties or environment variables:\n\n```kotlin\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\n\nval client: PlumeryClient = PlumeryOkHttpClient.builder()\n    // Configures using the `plumery.baseUrl` system property\n    // Or configures using the `PLUMERY_BASE_URL` environment variable\n    .fromEnv()\n    .session("My Session")\n    .build()\n```\n\nOr manually:\n\n```kotlin\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\n\nval client: PlumeryClient = PlumeryOkHttpClient.builder()\n    .session("My Session")\n    .build()\n```\n\nOr using a combination of the two approaches:\n\n```kotlin\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\n\nval client: PlumeryClient = PlumeryOkHttpClient.builder()\n    // Configures using the `plumery.baseUrl` system property\n    // Or configures using the `PLUMERY_BASE_URL` environment variable\n    .fromEnv()\n    .session("My Session")\n    .build()\n```\n\nSee this table for the available options:\n\n| Setter    | System property   | Environment variable | Required | Default value               |\n| --------- | ----------------- | -------------------- | -------- | --------------------------- |\n| `baseUrl` | `plumery.baseUrl` | `PLUMERY_BASE_URL`   | true     | `"https://api.plumery.com"` |\n\nSystem properties take precedence over environment variables.\n\n> [!TIP]\n> Don\'t create more than one client in the same application. Each client has a connection pool and\n> thread pools, which are more efficient to share between requests.\n\n### Modifying configuration\n\nTo temporarily use a modified client configuration, while reusing the same connection and thread       pools, call `withOptions()` on any client or service:\n\n```kotlin\nimport com.plumery.api.client.PlumeryClient\n\nval clientWithOptions: PlumeryClient = client.withOptions {\n    it.baseUrl("https://example.com")\n    it.maxRetries(42)\n}\n```\n\nThe `withOptions()` method does not affect the original client or service.\n\n## Requests and responses\n\nTo send a request to the Plumery API, build an instance of some `Params` class and pass it to the     corresponding client method. When the response is received, it will be deserialized into an instance of     a Kotlin class.\n\nFor example, `client.parties().accounts().list(...)` should be called with an instance of `AccountListParams`, and it     will return an instance of `AccountListResponse`.\n\n## Immutability\n\nEach class in the SDK has an associated   [builder](https://blogs.oracle.com/javamagazine/post/exploring-joshua-blochs-builder-design-pattern-in-java)   or factory method for constructing it.\n\nEach class is [immutable](https://docs.oracle.com/javase/tutorial/essential/concurrency/immutable.html)   once constructed. If the class has an associated builder, then it has a `toBuilder()` method, which can   be used to convert it back to a builder for making a modified copy.\n\nBecause each class is immutable, builder modification will _never_ affect already built class instances.\n\n## Asynchronous execution\n\nThe default client is synchronous. To switch to asynchronous execution, call the `async()` method:\n\n```kotlin\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.models.parties.accounts.AccountListParams\nimport com.plumery.api.models.parties.accounts.AccountListResponse\n\nval client: PlumeryClient = PlumeryOkHttpClient.builder()\n    // Configures using the `plumery.baseUrl` system property\n    // Or configures using the `PLUMERY_BASE_URL` environment variable\n    .fromEnv()\n    .session("My Session")\n    .build()\n\nval accounts: AccountListResponse = client.async().parties().accounts().list("REPLACE_ME")\n```\n\nOr create an asynchronous client from the beginning:\n\n```kotlin\nimport com.plumery.api.client.PlumeryClientAsync\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClientAsync\nimport com.plumery.api.models.parties.accounts.AccountListParams\nimport com.plumery.api.models.parties.accounts.AccountListResponse\n\nval client: PlumeryClientAsync = PlumeryOkHttpClientAsync.builder()\n    // Configures using the `plumery.baseUrl` system property\n    // Or configures using the `PLUMERY_BASE_URL` environment variable\n    .fromEnv()\n    .session("My Session")\n    .build()\n\nval accounts: AccountListResponse = client.parties().accounts().list("REPLACE_ME")\n```\n\nThe asynchronous client supports the same options as the synchronous one, except most methods are [suspending](https://kotlinlang.org/docs/coroutines-guide.html).\n\n\n\n## File uploads\n\nThe SDK defines methods that accept files.\n\nTo upload a file, pass a [`Path`](https://docs.oracle.com/javase/8/docs/api/java/nio/file/Path.html):\n\n```kotlin\nimport com.plumery.api.models.loanapplications.LoanApplicationUploadDocumentParams\nimport java.nio.file.Paths\n\nval params: LoanApplicationUploadDocumentParams = LoanApplicationUploadDocumentParams.builder()\n    .loanApplicationId("36a22460-ebc8-4ffe-a213-1683c5a420c5")\n    .documentType(LoanApplicationUploadDocumentParams.DocumentType.INCOME_PROOF)\n    .filename("filename")\n    .file(Paths.get("/path/to/file"))\n    .build()\nclient.loanApplications().uploadDocument(params)\n```\n\nOr an arbitrary [`InputStream`](https://docs.oracle.com/javase/8/docs/api/java/io/InputStream.html):\n\n```kotlin\nimport com.plumery.api.models.loanapplications.LoanApplicationUploadDocumentParams\nimport java.net.URL\n\nval params: LoanApplicationUploadDocumentParams = LoanApplicationUploadDocumentParams.builder()\n    .loanApplicationId("36a22460-ebc8-4ffe-a213-1683c5a420c5")\n    .documentType(LoanApplicationUploadDocumentParams.DocumentType.INCOME_PROOF)\n    .filename("filename")\n    .file(URL("https://example.com//path/to/file").openStream())\n    .build()\nclient.loanApplications().uploadDocument(params)\n```\n\nOr a `ByteArray`:\n\n```kotlin\nimport com.plumery.api.models.loanapplications.LoanApplicationUploadDocumentParams\n\nval params: LoanApplicationUploadDocumentParams = LoanApplicationUploadDocumentParams.builder()\n    .loanApplicationId("36a22460-ebc8-4ffe-a213-1683c5a420c5")\n    .documentType(LoanApplicationUploadDocumentParams.DocumentType.INCOME_PROOF)\n    .filename("filename")\n    .file("content".toByteArray())\n    .build()\nclient.loanApplications().uploadDocument(params)\n```\n\nNote that when passing a non-`Path` its filename is unknown so it will not be included in the request.     To manually set a filename, pass a [`MultipartField`](plumery-kotlin-core/src/main/kotlin/com/plumery/api/core/Values.kt):\n\n```kotlin\nimport com.plumery.api.core.MultipartField\nimport com.plumery.api.models.loanapplications.LoanApplicationUploadDocumentParams\nimport java.io.InputStream\nimport java.net.URL\n\nval params: LoanApplicationUploadDocumentParams = LoanApplicationUploadDocumentParams.builder()\n    .loanApplicationId("36a22460-ebc8-4ffe-a213-1683c5a420c5")\n    .documentType(LoanApplicationUploadDocumentParams.DocumentType.INCOME_PROOF)\n    .filename("filename")\n    .file(MultipartField.builder<InputStream>()\n        .value(URL("https://example.com//path/to/file").openStream())\n        .filename("/path/to/file")\n        .build())\n    .build()\nclient.loanApplications().uploadDocument(params)\n```\n\n## Binary responses\n\nThe SDK defines methods that return binary responses, which are used for API responses that shouldn\'t     necessarily be parsed, like non-JSON data.\n\nThese methods return [`HttpResponse`](plumery-kotlin-core/src/main/kotlin/com/plumery/api/core/http/HttpResponse.kt):\n\n```kotlin\nimport com.plumery.api.core.http.HttpResponse\nimport com.plumery.api.models.parties.transactions.TransactionGenerateSnapshotParams\n\nval params: TransactionGenerateSnapshotParams = TransactionGenerateSnapshotParams.builder()\n    .partyId("6878951b-256b-4baa-9e81-ad4c577adc4e")\n    .transactionId("5f0d3de8-d521-11ed-afa1-0242ac120002")\n    .build()\nval response: HttpResponse = client.parties().transactions().generateSnapshot(params)\n```\n\nTo save the response content to a file, use the     [`Files.copy(...)`](https://docs.oracle.com/javase/8/docs/api/java/nio/file/Files.html#copy-java.io.InputStream-java.nio.file.Path-java.nio.file.CopyOption...-)     method:\n\n```kotlin\nimport java.nio.file.Files\nimport java.nio.file.Paths\nimport java.nio.file.StandardCopyOption\n\nclient.parties().transactions().generateSnapshot(params).use {\n    Files.copy(\n        it.body(),\n        Paths.get(path),\n        StandardCopyOption.REPLACE_EXISTING\n    )\n}\n```\n\nOr transfer the response content to any     [`OutputStream`](https://docs.oracle.com/javase/8/docs/api/java/io/OutputStream.html):\n\n```kotlin\nimport java.nio.file.Files\nimport java.nio.file.Paths\n\nclient.parties().transactions().generateSnapshot(params).use {\n    it.body().transferTo(Files.newOutputStream(Paths.get(path)))\n}\n```\n\n## Raw responses\n\nThe SDK defines methods that deserialize responses into instances of Kotlin classes.       However, these methods don\'t provide access to the response headers, status code, or the raw response       body.\n\nTo access this data, prefix any HTTP method call on a client or service with `withRawResponse()`:\n\n```kotlin\nimport com.plumery.api.core.http.Headers\nimport com.plumery.api.core.http.HttpResponseFor\nimport com.plumery.api.models.parties.accounts.AccountListParams\nimport com.plumery.api.models.parties.accounts.AccountListResponse\n\nval accounts: HttpResponseFor<AccountListResponse> = client.parties().accounts().withRawResponse().list("REPLACE_ME")\n\nval statusCode: Int = accounts.statusCode()\nval headers: Headers = accounts.headers()\n```\n\nYou can still deserialize the response into an instance of a Kotlin class if needed:\n\n```kotlin\nimport com.plumery.api.models.parties.accounts.AccountListResponse\n\nval parsedAccounts: AccountListResponse = accounts.parse()\n```\n\n## Error handling\n\nThe SDK throws custom unchecked exception types:\n\n- [`PlumeryServiceException`](plumery-kotlin-core/src/main/kotlin/com/plumery/api/errors/PlumeryServiceException.kt): Base class for HTTP errors. See this table for which exception       subclass is thrown for each HTTP status code:\n\n  | Status | Exception                                          |\n  | ------ | -------------------------------------------------- |\n  | 400    | [`BadRequestException`](plumery-kotlin-core/src/main/kotlin/com/plumery/api/errors/BadRequestException.kt)           |\n  | 401    | [`UnauthorizedException`](plumery-kotlin-core/src/main/kotlin/com/plumery/api/errors/UnauthorizedException.kt)         |\n  | 403    | [`PermissionDeniedException`](plumery-kotlin-core/src/main/kotlin/com/plumery/api/errors/PermissionDeniedException.kt)     |\n  | 404    | [`NotFoundException`](plumery-kotlin-core/src/main/kotlin/com/plumery/api/errors/NotFoundException.kt)             |\n  | 422    | [`UnprocessableEntityException`](plumery-kotlin-core/src/main/kotlin/com/plumery/api/errors/UnprocessableEntityException.kt)  |\n  | 429    | [`RateLimitException`](plumery-kotlin-core/src/main/kotlin/com/plumery/api/errors/RateLimitException.kt)            |\n  | 5xx    | [`InternalServerException`](plumery-kotlin-core/src/main/kotlin/com/plumery/api/errors/InternalServerException.kt)       |\n  | others | [`UnexpectedStatusCodeException`](plumery-kotlin-core/src/main/kotlin/com/plumery/api/errors/UnexpectedStatusCodeException.kt) |\n\n- [`PlumeryIoException`](plumery-kotlin-core/src/main/kotlin/com/plumery/api/errors/PlumeryIoException.kt): I/O networking errors.\n\n- [`PlumeryRetryableException`](plumery-kotlin-core/src/main/kotlin/com/plumery/api/errors/PlumeryRetryableException.kt): Generic error indicating a failure that could be retried by the client.\n\n- [`PlumeryInvalidDataException`](plumery-kotlin-core/src/main/kotlin/com/plumery/api/errors/PlumeryInvalidDataException.kt): Failure to interpret successfully parsed data. For example,       when accessing a property that\'s supposed to be required, but the API unexpectedly omitted it from the       response.\n\n- [`PlumeryException`](plumery-kotlin-core/src/main/kotlin/com/plumery/api/errors/PlumeryException.kt): Base class for all exceptions. Most errors will result in one of the       previously mentioned ones, but completely generic errors may be thrown using the base class.\n\n\n\n## Logging\n\nEnable logging by setting the `PLUMERY_LOG` environment variable to   `info`:\n\n```sh\nexport PLUMERY_LOG=info\n```\n\nOr to `debug` for more verbose logging:\n\n```sh\nexport PLUMERY_LOG=debug\n```\n\nOr configure the client manually using the `logLevel` method:\n\n```kotlin\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.core.LogLevel\n\nval client: PlumeryClient = PlumeryOkHttpClient.builder()\n    .fromEnv()\n    .logLevel(LogLevel.INFO)\n    .session("My Session")\n    .build()\n```\n\n## ProGuard and R8\n\nAlthough the SDK uses reflection, it is still usable with     [ProGuard](https://github.com/Guardsquare/proguard) and     [R8](https://developer.android.com/topic/performance/app-optimization/enable-app-optimization) because     `plumery-kotlin-core` is published with a     [configuration file](plumery-kotlin-core/src/main/resources/META-INF/proguard/plumery-kotlin-core.pro) containing     [keep rules](https://www.guardsquare.com/manual/configuration/usage).\n\nProGuard and R8 should automatically detect and use the published rules, but you can also manually copy     the keep rules if necessary.\n\n\n\n\n\n## Jackson\n\nThe SDK depends on [Jackson](https://github.com/FasterXML/jackson) for JSON     serialization/deserialization. It is compatible with version 2.13.4 or higher,     but depends on version 2.18.2 by default.\n\nThe SDK throws an exception if it detects an incompatible Jackson version at runtime (e.g. if the     default version was overridden in your Maven or Gradle config).\n\nIf the SDK threw an exception, but you\'re _certain_ the version is compatible, then disable the version     check using the `checkJacksonVersionCompatibility` on [`PlumeryOkHttpClient`](plumery-kotlin-client-okhttp/src/main/kotlin/com/plumery/api/client/okhttp/PlumeryOkHttpClient.kt) or     [`PlumeryOkHttpClientAsync`](plumery-kotlin-client-okhttp/src/main/kotlin/com/plumery/api/client/okhttp/PlumeryOkHttpClientAsync.kt).\n\n> [!CAUTION]\n> We make no guarantee that the SDK works correctly when the Jackson version check is disabled.\n\nAlso note that there are bugs in older Jackson versions that can affect the SDK. We don\'t work around all     Jackson bugs ([example](https://github.com/FasterXML/jackson-databind/issues/3240)) and expect users to     upgrade Jackson for those instead.\n\n## Network options\n\n### Retries\n\nThe SDK automatically retries 2 times by default, with a short exponential backoff between requests.\n\nOnly the following error types are retried:\n- Connection errors (for example, due to a network connectivity problem)\n- 408 Request Timeout\n- 409 Conflict\n- 429 Rate Limit\n- 5xx Internal\n\nThe API may also explicitly instruct the SDK to retry or not retry a request.\n\nTo set a custom number of retries, configure the client using the `maxRetries` method:\n\n```kotlin\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\n\nval client: PlumeryClient = PlumeryOkHttpClient.builder()\n    .fromEnv()\n    .maxRetries(4)\n    .session("My Session")\n    .build()\n```\n\n### Timeouts\n\nRequests time out after 1 minute by default.\n\nTo set a custom timeout, configure the method call using the `timeout` method:\n\n```kotlin\nimport com.plumery.api.models.parties.accounts.AccountListResponse\n\nval accounts: AccountListResponse = client.parties().accounts().list(RequestOptions.builder().timeout(Duration.ofSeconds(30)).build())\n```\n\nOr configure the default for all method calls at the client level:\n\n```kotlin\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport java.time.Duration\n\nval client: PlumeryClient = PlumeryOkHttpClient.builder()\n    .fromEnv()\n    .timeout(Duration.ofSeconds(30))\n    .session("My Session")\n    .build()\n```\n\n### Proxies\n\nTo route requests through a proxy, configure the client using the `proxy` method:\n\n```kotlin\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport java.net.InetSocketAddress\nimport java.net.Proxy\n\nval client: PlumeryClient = PlumeryOkHttpClient.builder()\n    .fromEnv()\n    .proxy(Proxy(\n      Proxy.Type.HTTP, InetSocketAddress(\n        "https://example.com", 8080\n      )\n    ))\n    .session("My Session")\n    .build()\n```\n\nIf the proxy responds with `407 Proxy Authentication Required`, supply credentials by also   configuring `proxyAuthenticator`:\n\n```kotlin\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport com.plumery.api.core.http.ProxyAuthenticator\n\nval client: PlumeryClient = PlumeryOkHttpClient.builder()\n    .fromEnv()\n    .proxy(...)\n    // Or a custom implementation of `ProxyAuthenticator`.\n    .proxyAuthenticator(ProxyAuthenticator.basic("username", "password"))\n    .session("My Session")\n    .build()\n```\n\n### Connection pooling\n\nTo customize the underlying OkHttp connection pool, configure the client using the   `maxIdleConnections` and `keepAliveDuration` methods:\n\n```kotlin\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\nimport java.time.Duration\n\nval client: PlumeryClient = PlumeryOkHttpClient.builder()\n    .fromEnv()\n    // If `maxIdleConnections` is set, then `keepAliveDuration` must be set, and vice versa.\n    .maxIdleConnections(10)\n    .keepAliveDuration(Duration.ofMinutes(2))\n    .session("My Session")\n    .build()\n```\n\nIf both options are unset, OkHttp\'s default connection pool settings are used.\n\n### HTTPS\n\n> [!NOTE]\n> Most applications should not call these methods, and instead use the system defaults. The defaults include\n> special optimizations that can be lost if the implementations are modified.\n\nTo configure how HTTPS connections are secured, configure the client using the `sslSocketFactory`,   `trustManager`, and `hostnameVerifier` methods:\n\n```kotlin\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\n\nval client: PlumeryClient = PlumeryOkHttpClient.builder()\n    .fromEnv()\n    // If `sslSocketFactory` is set, then `trustManager` must be set, and vice versa.\n    .sslSocketFactory(yourSSLSocketFactory)\n    .trustManager(yourTrustManager)\n    .hostnameVerifier(yourHostnameVerifier)\n    .session("My Session")\n    .build()\n```\n\n\n\n### Custom HTTP client\n\nThe SDK consists of three artifacts:\n- `plumery-kotlin-core`\n  - Contains core SDK logic\n  - Does not depend on [OkHttp](https://square.github.io/okhttp)\n  - Exposes [`PlumeryClient`](plumery-kotlin-core/src/main/kotlin/com/plumery/api/client/PlumeryClient.kt), [`PlumeryClientAsync`](plumery-kotlin-core/src/main/kotlin/com/plumery/api/client/PlumeryClientAsync.kt),             [`PlumeryClientImpl`](plumery-kotlin-core/src/main/kotlin/com/plumery/api/client/PlumeryClientImpl.kt), and [`PlumeryClientAsyncImpl`](plumery-kotlin-core/src/main/kotlin/com/plumery/api/client/PlumeryClientAsyncImpl.kt), all of which can             work with any HTTP client\n- `plumery-kotlin-client-okhttp`\n  - Depends on [OkHttp](https://square.github.io/okhttp)\n  - Exposes [`PlumeryOkHttpClient`](plumery-kotlin-client-okhttp/src/main/kotlin/com/plumery/api/client/okhttp/PlumeryOkHttpClient.kt) and [`PlumeryOkHttpClientAsync`](plumery-kotlin-client-okhttp/src/main/kotlin/com/plumery/api/client/okhttp/PlumeryOkHttpClientAsync.kt), which             provide a way to construct [`PlumeryClientImpl`](plumery-kotlin-core/src/main/kotlin/com/plumery/api/client/PlumeryClientImpl.kt) and             [`PlumeryClientAsyncImpl`](plumery-kotlin-core/src/main/kotlin/com/plumery/api/client/PlumeryClientAsyncImpl.kt), respectively, using OkHttp\n- `plumery-kotlin`\n  - Depends on and exposes the APIs of both `plumery-kotlin-core` and `plumery-kotlin-client-okhttp`\n  - Does not have its own logic\n\nThis structure allows replacing the SDK\'s default HTTP client without pulling in unnecessary dependencies.\n\n#### Customized [`OkHttpClient`](https://square.github.io/okhttp/3.x/okhttp/okhttp3/OkHttpClient.html)\n\n> [!TIP]\n> Try the available [network options](#network-options) before replacing the default client.\n\nTo use a customized `OkHttpClient`:\n\n1. Replace your [`plumery-kotlin` dependency](#installation) with `plumery-kotlin-core`\n2. Copy `plumery-kotlin-client-okhttp`\'s [`OkHttpClient`](plumery-kotlin-client-okhttp/src/main/kotlin/com/plumery/api/client/okhttp/OkHttpClient.kt) class into your code and        customize it\n3. Construct [`PlumeryClientImpl`](plumery-kotlin-core/src/main/kotlin/com/plumery/api/client/PlumeryClientImpl.kt) or [`PlumeryClientAsyncImpl`](plumery-kotlin-core/src/main/kotlin/com/plumery/api/client/PlumeryClientAsyncImpl.kt), similarly to        [`PlumeryOkHttpClient`](plumery-kotlin-client-okhttp/src/main/kotlin/com/plumery/api/client/okhttp/PlumeryOkHttpClient.kt) or [`PlumeryOkHttpClientAsync`](plumery-kotlin-client-okhttp/src/main/kotlin/com/plumery/api/client/okhttp/PlumeryOkHttpClientAsync.kt), using your        customized client\n\n### Completely custom HTTP client\n\nTo use a completely custom HTTP client:\n\n1. Replace your [`plumery-kotlin` dependency](#installation) with `plumery-kotlin-core`\n2. Write a class that implements the [`HttpClient`](plumery-kotlin-core/src/main/kotlin/com/plumery/api/core/http/HttpClient.kt) interface\n3. Construct [`PlumeryClientImpl`](plumery-kotlin-core/src/main/kotlin/com/plumery/api/client/PlumeryClientImpl.kt) or [`PlumeryClientAsyncImpl`](plumery-kotlin-core/src/main/kotlin/com/plumery/api/client/PlumeryClientAsyncImpl.kt), similarly to        [`PlumeryOkHttpClient`](plumery-kotlin-client-okhttp/src/main/kotlin/com/plumery/api/client/okhttp/PlumeryOkHttpClient.kt) or [`PlumeryOkHttpClientAsync`](plumery-kotlin-client-okhttp/src/main/kotlin/com/plumery/api/client/okhttp/PlumeryOkHttpClientAsync.kt), using your new        client class\n\n## Undocumented API functionality\n\nThe SDK is typed for convenient usage of the documented API. However, it also supports working with undocumented or not yet supported parts of the API.\n\n### Parameters\n\nTo set undocumented parameters, call the `putAdditionalHeader`, `putAdditionalQueryParam`, or       `putAdditionalBodyProperty` methods on any `Params` class:\n\n```kotlin\nimport com.plumery.api.core.JsonValue\nimport com.plumery.api.models.parties.accounts.AccountListParams\n\nval params: AccountListParams = AccountListParams.builder()\n    .putAdditionalHeader("Secret-Header", "42")\n    .putAdditionalQueryParam("secret_query_param", "42")\n    .putAdditionalBodyProperty("secretProperty", JsonValue.from("42"))\n    .build()\n```\n\nThese can be accessed on the built object later using the `_additionalHeaders()`,       `_additionalQueryParams()`, and `_additionalBodyProperties()` methods.\n\nTo set undocumented parameters on _nested_ headers, query params, or body classes, call the         `putAdditionalProperty` method on the nested class:\n\n```kotlin\nimport com.plumery.api.core.JsonValue\nimport com.plumery.api.models.userenrolments.UserEnrolmentSetIndividualPartyProfileParams\n\nval params: UserEnrolmentSetIndividualPartyProfileParams = UserEnrolmentSetIndividualPartyProfileParams.builder()\n    .postalAddress(UserEnrolmentSetIndividualPartyProfileParams.PostalAddress.builder()\n        .putAdditionalProperty("secretProperty", JsonValue.from("42"))\n        .build())\n    .build()\n```\n\nThese properties can be accessed on the nested built object later using the         `_additionalProperties()` method.\n\nTo set a documented parameter or property to an undocumented or not yet supported _value_, pass a       [`JsonValue`](plumery-kotlin-core/src/main/kotlin/com/plumery/api/core/Values.kt) object to its setter:\n\n```kotlin\nimport com.plumery.api.models.parties.accounts.AccountListParams\n\nval params: AccountListParams = AccountListParams.builder().build()\n```\n\nThe most straightforward way to create a [`JsonValue`](plumery-kotlin-core/src/main/kotlin/com/plumery/api/core/Values.kt) is using its       `from(...)` method:\n\n```kotlin\nimport com.plumery.api.core.JsonValue\n\n// Create primitive JSON values\nval nullValue: JsonValue = JsonValue.from(null)\nval booleanValue: JsonValue = JsonValue.from(true)\nval numberValue: JsonValue = JsonValue.from(42)\nval stringValue: JsonValue = JsonValue.from("Hello World!")\n\n// Create a JSON array value equivalent to `["Hello", "World"]`\nval arrayValue: JsonValue = JsonValue.from(listOf(\n  "Hello", "World"\n))\n\n// Create a JSON object value equivalent to `{ "a": 1, "b": 2 }`\nval objectValue: JsonValue = JsonValue.from(mapOf(\n  "a" to 1, "b" to 2\n))\n\n// Create an arbitrarily nested JSON equivalent to:\n// {\n//   "a": [1, 2],\n//   "b": [3, 4]\n// }\nval complexValue: JsonValue = JsonValue.from(mapOf(\n  "a" to listOf(\n    1, 2\n  ), "b" to listOf(\n    3, 4\n  )\n))\n```\n\nNormally a `Builder` class\'s `build` method will throw         [`IllegalStateException`](https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html)         if any required parameter or property is unset.\n\nTo forcibly omit a required parameter or property, pass [`JsonMissing`](plumery-kotlin-core/src/main/kotlin/com/plumery/api/core/Values.kt):\n\n```kotlin\nimport com.plumery.api.core.JsonMissing\nimport com.plumery.api.models.parties.accounts.AccountListParams\n\nval params: AccountListParams = AccountListParams.builder()\n    .partyId(JsonMissing.of())\n    .build()\n```\n\n### Response properties\n\nTo access undocumented response properties, call the `_additionalProperties()` method:\n\n```kotlin\nimport com.plumery.api.core.JsonBoolean\nimport com.plumery.api.core.JsonNull\nimport com.plumery.api.core.JsonNumber\nimport com.plumery.api.core.JsonValue\n\nval additionalProperties: Map<String, JsonValue> = client.parties().accounts().list(params)._additionalProperties()\nval secretPropertyValue: JsonValue = additionalProperties.get("secretProperty")\n\nval result = when (secretPropertyValue) {\n    is JsonNull -> "It\'s null!"\n    is JsonBoolean -> "It\'s a boolean!"\n    is JsonNumber -> "It\'s a number!"\n    // Other types include `JsonMissing`, `JsonString`, `JsonArray`, and `JsonObject`\n    else -> "It\'s something else!"\n}\n```\n\nTo access a property\'s raw JSON value, which may be undocumented, call its `_` prefixed method:\n\n```kotlin\nimport com.plumery.api.core.JsonField\n\nval field: JsonField<Any> = client.parties().accounts().list(params)._field()\n\nif (field.isMissing()) {\n  // The property is absent from the JSON response\n} else if (field.isNull()) {\n  // The property was set to literal null\n} else {\n  // Check if value was provided as a string\n  // Other methods include `asNumber()`, `asBoolean()`, etc.\n  val jsonString: String? = field.asString();\n\n  // Try to deserialize into a custom type\n  val myObject: MyClass = field.asUnknown()!!.convert(MyClass::class.java)\n}\n```\n\n### Response validation\n\nIn rare cases, the API may return a response that doesn\'t match the expected type. For example, the SDK     may expect a property to contain a `String`, but the API could return something else.\n\nBy default, the SDK will not throw an exception in this case. It will throw     [`PlumeryInvalidDataException`](plumery-kotlin-core/src/main/kotlin/com/plumery/api/errors/PlumeryInvalidDataException.kt) only if you directly access the property.\n\nValidating the response is _not_ forwards compatible with new types from the API for existing fields.\n\nIf you would still prefer to check that the response is completely well-typed upfront, then either call     `validate()`:\n\n```kotlin\nimport com.plumery.api.models.parties.accounts.AccountListResponse\n\nval accounts: AccountListResponse = client.parties().accounts().list(params).validate()\n```\n\nOr configure the method call to validate the response using the `responseValidation` method:\n\n```kotlin\nimport com.plumery.api.models.parties.accounts.AccountListResponse\n\nval accounts: AccountListResponse = client.parties().accounts().list(RequestOptions.builder().responseValidation(true).build())\n```\n\nOr configure the default for all method calls at the client level:\n\n```kotlin\nimport com.plumery.api.client.PlumeryClient\nimport com.plumery.api.client.okhttp.PlumeryOkHttpClient\n\nval client: PlumeryClient = PlumeryOkHttpClient.builder()\n    .fromEnv()\n    .responseValidation(true)\n    .session("My Session")\n    .build()\n```\n\n## FAQ\n\n### Why don\'t you use plain `enum` classes?\n\nKotlin `enum` classes are not trivially   [forwards compatible](https://www.stainless.com/blog/making-java-enums-forwards-compatible). Using them in   the SDK could cause runtime exceptions if the API is updated to respond with a new enum value.\n\n### Why do you represent fields using `JsonField<T>` instead of just plain `T`?\n\nUsing `JsonField<T>` enables a few features:\n\n- Allowing usage of [undocumented API functionality](#undocumented-api-functionality)\n- Lazily [validating the API response against the expected shape](#response-validation)\n- Representing absent vs explicitly null values\n\n### Why don\'t you use [`data` classes](https://kotlinlang.org/docs/data-classes.html)?\n\nIt is not [backwards compatible to add new fields to a data class](https://kotlinlang.org/docs/api-guidelines-backward-compatibility.html#avoid-using-data-classes-in-your-api)   and we don\'t want to introduce a breaking change every time we add a field to a class.\n\n### Why don\'t you use checked exceptions?\n\nChecked exceptions are widely considered a mistake in the Java programming language. In fact, they were   omitted from Kotlin for this reason.\n\nChecked exceptions:\n\n- Are verbose to handle\n- Encourage error handling at the wrong level of abstraction, where nothing can be done about the error\n- Are tedious to propagate due to the [function coloring problem](https://journal.stuffwithstuff.com/2015/02/01/what-color-is-your-function)\n- Don\'t play well with lambdas (also due to the function coloring problem)\n\n## Semantic versioning\n\nThis package generally follows [SemVer](https://semver.org/spec/v2.0.0.html) conventions, though certain backwards-incompatible changes may be released as minor versions:\n\n1. Changes to library internals which are technically public but not intended or documented for external use. _(Please open a GitHub issue to let us know if you are relying on such internals.)_\n2. Changes that we do not expect to impact the vast majority of users in practice.\n\nWe take backwards-compatibility seriously and work hard to ensure you can rely on a smooth upgrade experience.\n\nWe are keen for your feedback; please open an [issue](https://www.github.com/plumery/plumery-kotlin/issues) with questions, bugs, or suggestions.\n',
  },
  {
    language: 'python',
    content:
      '# Plumery Python API library\n\n<!-- prettier-ignore -->\n[![PyPI version](https://img.shields.io/pypi/v/plumery.svg?label=pypi%20(stable))](https://pypi.org/project/plumery/)\n\nThe Plumery Python library provides convenient access to the Plumery REST API from any Python 3.9+\napplication. The library includes type definitions for all request params and response fields,\nand offers both synchronous and asynchronous clients powered by [httpx](https://github.com/encode/httpx).\n\n\n\nIt is generated with [Stainless](https://www.stainless.com/).\n\n## MCP Server\n\nUse the Plumery MCP Server to enable AI assistants to interact with this API, allowing them to explore endpoints, make test requests, and use documentation to help integrate this SDK into your application.\n\n[![Add to Cursor](https://cursor.com/deeplink/mcp-install-dark.svg)](https://cursor.com/en-US/install-mcp?name=plumery-mcp&config=eyJuYW1lIjoicGx1bWVyeS1tY3AiLCJ0cmFuc3BvcnQiOiJodHRwIiwidXJsIjoiaHR0cHM6Ly9wbHVtZXJ5LnN0bG1jcC5jb20iLCJoZWFkZXJzIjp7IkNvb2tpZSI6Ik15IFNlc3Npb24ifX0)\n[![Install in VS Code](https://img.shields.io/badge/_-Add_to_VS_Code-blue?style=for-the-badge&logo=data:image/svg%2bxml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGZpbGw9Im5vbmUiIHZpZXdCb3g9IjAgMCA0MCA0MCI+PHBhdGggZmlsbD0iI0VFRSIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMzAuMjM1IDM5Ljg4NGEyLjQ5MSAyLjQ5MSAwIDAgMS0xLjc4MS0uNzNMMTIuNyAyNC43OGwtMy40NiAyLjYyNC0zLjQwNiAyLjU4MmExLjY2NSAxLjY2NSAwIDAgMS0xLjA4Mi4zMzggMS42NjQgMS42NjQgMCAwIDEtMS4wNDYtLjQzMWwtMi4yLTJhMS42NjYgMS42NjYgMCAwIDEgMC0yLjQ2M0w3LjQ1OCAyMCA0LjY3IDE3LjQ1MyAxLjUwNyAxNC41N2ExLjY2NSAxLjY2NSAwIDAgMSAwLTIuNDYzbDIuMi0yYTEuNjY1IDEuNjY1IDAgMCAxIDIuMTMtLjA5N2w2Ljg2MyA1LjIwOUwyOC40NTIuODQ0YTIuNDg4IDIuNDg4IDAgMCAxIDEuODQxLS43MjljLjM1MS4wMDkuNjk5LjA5MSAxLjAxOS4yNDVsOC4yMzYgMy45NjFhMi41IDIuNSAwIDAgMSAxLjQxNSAyLjI1M3YuMDk5LS4wNDVWMzMuMzd2LS4wNDUuMDk1YTIuNTAxIDIuNTAxIDAgMCAxLTEuNDE2IDIuMjU3bC04LjIzNSAzLjk2MWEyLjQ5MiAyLjQ5MiAwIDAgMS0xLjA3Ny4yNDZabS43MTYtMjguOTQ3LTExLjk0OCA5LjA2MiAxMS45NTIgOS4wNjUtLjAwNC0xOC4xMjdaIi8+PC9zdmc+)](https://vscode.stainless.com/mcp/%7B%22name%22%3A%22plumery-mcp%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fplumery.stlmcp.com%22%2C%22headers%22%3A%7B%22Cookie%22%3A%22My%20Session%22%7D%7D)\n\n> Note: You may need to set environment variables in your MCP client.\n\n## Documentation\n\nThe REST API documentation can be found on [plumery.stldocs.app](https://plumery.stldocs.app/api). The full API of this library can be found in [api.md](api.md).\n\n## Installation\n\n```sh\n# install from PyPI\npip install plumery\n```\n\n## Usage\n\nThe full API of this library can be found in [api.md](api.md).\n\n```python\nfrom plumery import Plumery\n\nclient = Plumery(\n    session="My Session",\n)\n\naccounts = client.parties.accounts.list(\n    party_id="REPLACE_ME",\n)\nprint(accounts.accounts)\n```\n\n\n\n## Async usage\n\nSimply import `AsyncPlumery` instead of `Plumery` and use `await` with each API call:\n\n```python\nimport asyncio\nfrom plumery import AsyncPlumery\n\nclient = AsyncPlumery(\n    session="My Session",\n)\n\nasync def main() -> None:\n  accounts = await client.parties.accounts.list(\n      party_id="REPLACE_ME",\n  )\n  print(accounts.accounts)\n\nasyncio.run(main())\n```\n\nFunctionality between the synchronous and asynchronous clients is otherwise identical.\n\n### With aiohttp\n\nBy default, the async client uses `httpx` for HTTP requests. However, for improved concurrency performance you may also use `aiohttp` as the HTTP backend.\n\nYou can enable this by installing `aiohttp`:\n\n```sh\n# install from PyPI\npip install plumery[aiohttp]\n```\n\nThen you can enable it by instantiating the client with `http_client=DefaultAioHttpClient()`:\n\n```python\nimport asyncio\nfrom plumery import DefaultAioHttpClient\nfrom plumery import AsyncPlumery\n\nasync def main() -> None:\n  async with AsyncPlumery(\n    session="My Session",\n    http_client=DefaultAioHttpClient(),\n) as client:\n    accounts = await client.parties.accounts.list(\n        party_id="REPLACE_ME",\n    )\n    print(accounts.accounts)\n\nasyncio.run(main())\n```\n\n\n\n## Using types\n\nNested request parameters are [TypedDicts](https://docs.python.org/3/library/typing.html#typing.TypedDict). Responses are [Pydantic models](https://docs.pydantic.dev) which also provide helper methods for things like:\n\n- Serializing back into JSON, `model.to_json()`\n- Converting to a dictionary, `model.to_dict()`\n\nTyped requests and responses provide autocomplete and documentation within your editor. If you would like to see type errors in VS Code to help catch bugs earlier, set `python.analysis.typeCheckingMode` to `basic`.\n\n\n\n## Nested params\n\nNested parameters are dictionaries, typed using `TypedDict`, for example:\n\n```python\nfrom plumery import Plumery\n\nclient = Plumery()\n\nclient.user_enrolments.set_individual_party_profile(\n    enrolment_id="36a22460-ebc8-4ffe-a213-1683c5a420c5",\n    postal_address={},\n)\n```\n\n## File uploads\n\nRequest parameters that correspond to file uploads can be passed as `bytes`, or a [`PathLike`](https://docs.python.org/3/library/os.html#os.PathLike) instance or a tuple of `(filename, contents, media type)`.\n\n```python\nfrom pathlib import Path\nfrom plumery import Plumery\n\nclient = Plumery()\n\nclient.loan_applications.upload_document(\n    loan_application_id="36a22460-ebc8-4ffe-a213-1683c5a420c5",\n    document_type="INCOME_PROOF",\n    file=Path("/path/to/file"),\n    filename="filename",\n)\n```\n\nThe async client uses the exact same interface. If you pass a [`PathLike`](https://docs.python.org/3/library/os.html#os.PathLike) instance, the file contents will be read asynchronously automatically.\n\n## Handling errors\n\nWhen the library is unable to connect to the API (for example, due to network connection problems or a timeout), a subclass of `plumery.APIConnectionError` is raised.\n\nWhen the API returns a non-success status code (that is, 4xx or 5xx\nresponse), a subclass of `plumery.APIStatusError` is raised, containing `status_code` and `response` properties.\n\nAll errors inherit from `plumery.APIError`.\n\n```python\nimport plumery\nfrom plumery import Plumery\n\nclient = Plumery()\n\ntry:\n    client.parties.accounts.list(\n        party_id="REPLACE_ME",\n    )\nexcept plumery.APIConnectionError as e:\n    print("The server could not be reached")\n    print(e.__cause__) # an underlying Exception, likely raised within httpx.\nexcept plumery.RateLimitError as e:\n    print("A 429 status code was received; we should back off a bit.")\nexcept plumery.APIStatusError as e:\n    print("Another non-200-range status code was received")\n    print(e.status_code)\n    print(e.response)\n```\n\nError codes are as follows:\n\n| Status Code | Error Type                 |\n| ----------- | -------------------------- |\n| 400         | `BadRequestError`          |\n| 401         | `AuthenticationError`      |\n| 403         | `PermissionDeniedError`    |\n| 404         | `NotFoundError`            |\n| 422         | `UnprocessableEntityError` |\n| 429         | `RateLimitError`           |\n| >=500       | `InternalServerError`      |\n| N/A         | `APIConnectionError`       |\n\n### Retries\n\nCertain errors are automatically retried 2 times by default, with a short exponential backoff.\nConnection errors (for example, due to a network connectivity problem), 408 Request Timeout, 409 Conflict,\n429 Rate Limit, and >=500 Internal errors are all retried by default.\n\nYou can use the `max_retries` option to configure or disable retry settings:\n\n```python\nfrom plumery import Plumery\n\n# Configure the default for all requests:\nclient = Plumery(\n    # default is 2\n    max_retries=0,\n)\n\n# Or, configure per-request:\nclient.with_options(max_retries = 5).parties.accounts.list(\n    party_id="REPLACE_ME",\n)\n```\n\n### Timeouts\n\nBy default requests time out after 1 minute. You can configure this with a `timeout` option,\nwhich accepts a float or an [`httpx.Timeout`](https://www.python-httpx.org/advanced/timeouts/#fine-tuning-the-configuration) object:\n\n```python\nfrom plumery import Plumery\n\n# Configure the default for all requests:\nclient = Plumery(\n    # 20 seconds (default is 1 minute)\n    timeout=20.0,\n)\n\n# More granular control:\nclient = Plumery(\n    timeout=httpx.Timeout(60.0, read=5.0, write=10.0, connect=2.0),\n)\n\n# Override per-request:\nclient.with_options(timeout = 5.0).parties.accounts.list(\n    party_id="REPLACE_ME",\n)\n```\n\nOn timeout, an `APITimeoutError` is thrown.\n\nNote that requests that time out are [retried twice by default](#retries).\n\n\n\n## Advanced\n\n### Logging\n\nWe use the standard library [`logging`](https://docs.python.org/3/library/logging.html) module.\n\nYou can enable logging by setting the environment variable `PLUMERY_LOG` to `info`.\n\n```shell\n$ export PLUMERY_LOG=info\n```\n\nOr to `debug` for more verbose logging.\n\n### How to tell whether `None` means `null` or missing\n\nIn an API response, a field may be explicitly `null`, or missing entirely; in either case, its value is `None` in this library. You can differentiate the two cases with `.model_fields_set`:\n\n```py\nif response.my_field is None:\n  if \'my_field\' not in response.model_fields_set:\n    print(\'Got json like {}, without a "my_field" key present at all.\')\n  else:\n    print(\'Got json like {"my_field": null}.\')\n```\n\n### Accessing raw response data (e.g. headers)\n\nThe "raw" Response object can be accessed by prefixing `.with_raw_response.` to any HTTP method call, e.g.,\n\n```py\nfrom plumery import Plumery\n\nclient = Plumery()\nresponse = client.parties.accounts.with_raw_response.list(\n    party_id="REPLACE_ME",\n)\nprint(response.headers.get(\'X-My-Header\'))\n\naccount = response.parse()  # get the object that `parties.accounts.list()` would have returned\nprint(account.accounts)\n```\n\nThese methods return an [`APIResponse`](https://github.com/plumery/plumery-python/tree/main/src/plumery/_response.py) object.\n\nThe async client returns an [`AsyncAPIResponse`](https://github.com/plumery/plumery-python/tree/main/src/plumery/_response.py) with the same structure, the only difference being `await`able methods for reading the response content.\n\n#### `.with_streaming_response`\n\nThe above interface eagerly reads the full response body when you make the request, which may not always be what you want.\n\nTo stream the response body, use `.with_streaming_response` instead, which requires a context manager and only reads the response body once you call `.read()`, `.text()`, `.json()`, `.iter_bytes()`, `.iter_text()`, `.iter_lines()` or `.parse()`. In the async client, these are async methods.\n\n```python\nwith client.parties.accounts.with_streaming_response.list(\n    party_id="REPLACE_ME",\n) as response :\n    print(response.headers.get(\'X-My-Header\'))\n\n    for line in response.iter_lines():\n      print(line)\n```\n\nThe context manager is required so that the response will reliably be closed.\n\n### Making custom/undocumented requests\n\nThis library is typed for convenient access to the documented API.\n\nIf you need to access undocumented endpoints, params, or response properties, the library can still be used.\n\n#### Undocumented endpoints\n\nTo make requests to undocumented endpoints, you can make requests using `client.get`, `client.post`, and other\nhttp verbs. Options on the client will be respected (such as retries) when making this request.\n\n```py\nimport httpx\n\nresponse = client.post(\n    "/foo",\n    cast_to=httpx.Response,\n    body={"my_param": True},\n)\n\nprint(response.headers.get("x-foo"))\n```\n\n#### Undocumented request params\n\nIf you want to explicitly send an extra param, you can do so with the `extra_query`, `extra_body`, and `extra_headers` request\noptions.\n\n#### Undocumented response properties\n\nTo access undocumented response properties, you can access the extra fields like `response.unknown_prop`. You\ncan also get all the extra fields on the Pydantic model as a dict with\n[`response.model_extra`](https://docs.pydantic.dev/latest/api/base_model/#pydantic.BaseModel.model_extra).\n\n### Configuring the HTTP client\n\nYou can directly override the [httpx client](https://www.python-httpx.org/api/#client) to customize it for your use case, including:\n\n- Support for [proxies](https://www.python-httpx.org/advanced/proxies/)\n- Custom [transports](https://www.python-httpx.org/advanced/transports/)\n- Additional [advanced](https://www.python-httpx.org/advanced/clients/) functionality\n\n```python\nimport httpx\nfrom plumery import Plumery, DefaultHttpxClient\n\nclient = Plumery(\n    # Or use the `PLUMERY_BASE_URL` env var\n    base_url="http://my.test.server.example.com:8083",\n    http_client=DefaultHttpxClient(proxy="http://my.test.proxy.example.com", transport=httpx.HTTPTransport(local_address="0.0.0.0")),\n)\n```\n\nYou can also customize the client on a per-request basis by using `with_options()`:\n\n```python\nclient.with_options(http_client=DefaultHttpxClient(...))\n```\n\n### Managing HTTP resources\n\nBy default the library closes underlying HTTP connections whenever the client is [garbage collected](https://docs.python.org/3/reference/datamodel.html#object.__del__). You can manually close the client using the `.close()` method if desired, or with a context manager that closes when exiting.\n\n```py\nfrom plumery import Plumery\n\nwith Plumery() as client:\n  # make requests here\n  ...\n\n# HTTP client is now closed\n```\n\n## Versioning\n\nThis package generally follows [SemVer](https://semver.org/spec/v2.0.0.html) conventions, though certain backwards-incompatible changes may be released as minor versions:\n\n1. Changes that only affect static types, without breaking runtime behavior.\n2. Changes to library internals which are technically public but not intended or documented for external use. _(Please open a GitHub issue to let us know if you are relying on such internals.)_\n3. Changes that we do not expect to impact the vast majority of users in practice.\n\nWe take backwards-compatibility seriously and work hard to ensure you can rely on a smooth upgrade experience.\n\nWe are keen for your feedback; please open an [issue](https://www.github.com/plumery/plumery-python/issues) with questions, bugs, or suggestions.\n\n### Determining the installed version\n\nIf you\'ve upgraded to the latest version but aren\'t seeing any new features you were expecting then your python environment is likely still using an older version.\n\nYou can determine the version that is being used at runtime with:\n\n```py\nimport plumery\nprint(plumery.__version__)\n```\n\n## Requirements\n\nPython 3.9 or higher.\n\n## Contributing\n\nSee [the contributing documentation](./CONTRIBUTING.md).\n',
  },
  {
    language: 'typescript',
    content:
      "# Plumery TypeScript API Library\n\n[![NPM version](https://img.shields.io/npm/v/plumery.svg?label=npm%20(stable))](https://npmjs.org/package/plumery) ![npm bundle size](https://img.shields.io/bundlephobia/minzip/plumery)\n\nThis library provides convenient access to the Plumery REST API from server-side TypeScript or JavaScript.\n\n\n\nThe REST API documentation can be found on [plumery.stldocs.app](https://plumery.stldocs.app/api). The full API of this library can be found in [api.md](api.md).\n\nIt is generated with [Stainless](https://www.stainless.com/).\n\n## MCP Server\n\nUse the Plumery MCP Server to enable AI assistants to interact with this API, allowing them to explore endpoints, make test requests, and use documentation to help integrate this SDK into your application.\n\n[![Add to Cursor](https://cursor.com/deeplink/mcp-install-dark.svg)](https://cursor.com/en-US/install-mcp?name=plumery-mcp&config=eyJuYW1lIjoicGx1bWVyeS1tY3AiLCJ0cmFuc3BvcnQiOiJodHRwIiwidXJsIjoiaHR0cHM6Ly9wbHVtZXJ5LnN0bG1jcC5jb20iLCJoZWFkZXJzIjp7IkNvb2tpZSI6Ik15IFNlc3Npb24ifX0)\n[![Install in VS Code](https://img.shields.io/badge/_-Add_to_VS_Code-blue?style=for-the-badge&logo=data:image/svg%2bxml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGZpbGw9Im5vbmUiIHZpZXdCb3g9IjAgMCA0MCA0MCI+PHBhdGggZmlsbD0iI0VFRSIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMzAuMjM1IDM5Ljg4NGEyLjQ5MSAyLjQ5MSAwIDAgMS0xLjc4MS0uNzNMMTIuNyAyNC43OGwtMy40NiAyLjYyNC0zLjQwNiAyLjU4MmExLjY2NSAxLjY2NSAwIDAgMS0xLjA4Mi4zMzggMS42NjQgMS42NjQgMCAwIDEtMS4wNDYtLjQzMWwtMi4yLTJhMS42NjYgMS42NjYgMCAwIDEgMC0yLjQ2M0w3LjQ1OCAyMCA0LjY3IDE3LjQ1MyAxLjUwNyAxNC41N2ExLjY2NSAxLjY2NSAwIDAgMSAwLTIuNDYzbDIuMi0yYTEuNjY1IDEuNjY1IDAgMCAxIDIuMTMtLjA5N2w2Ljg2MyA1LjIwOUwyOC40NTIuODQ0YTIuNDg4IDIuNDg4IDAgMCAxIDEuODQxLS43MjljLjM1MS4wMDkuNjk5LjA5MSAxLjAxOS4yNDVsOC4yMzYgMy45NjFhMi41IDIuNSAwIDAgMSAxLjQxNSAyLjI1M3YuMDk5LS4wNDVWMzMuMzd2LS4wNDUuMDk1YTIuNTAxIDIuNTAxIDAgMCAxLTEuNDE2IDIuMjU3bC04LjIzNSAzLjk2MWEyLjQ5MiAyLjQ5MiAwIDAgMS0xLjA3Ny4yNDZabS43MTYtMjguOTQ3LTExLjk0OCA5LjA2MiAxMS45NTIgOS4wNjUtLjAwNC0xOC4xMjdaIi8+PC9zdmc+)](https://vscode.stainless.com/mcp/%7B%22name%22%3A%22plumery-mcp%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fplumery.stlmcp.com%22%2C%22headers%22%3A%7B%22Cookie%22%3A%22My%20Session%22%7D%7D)\n\n> Note: You may need to set environment variables in your MCP client.\n\n## Installation\n\n```sh\nnpm install plumery\n```\n\n\n\n## Usage\n\nThe full API of this library can be found in [api.md](api.md).\n\n<!-- prettier-ignore -->\n```js\nimport Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nconst accounts = await client.parties.accounts.list('REPLACE_ME');\n\nconsole.log(accounts.accounts);\n```\n\n\n\n### Request & Response types\n\nThis library includes TypeScript definitions for all request params and response fields. You may import and use them like so:\n\n<!-- prettier-ignore -->\n```ts\nimport Plumery from 'plumery';\n\nconst client = new Plumery({\n  session: 'My Session',\n});\n\nconst accounts: Plumery.Parties.AccountListResponse = await client.parties.accounts.list(\n  'REPLACE_ME',\n);\n```\n\nDocumentation for each method, request param, and response field are available in docstrings and will appear on hover in most modern editors.\n\n## File uploads\n\nRequest parameters that correspond to file uploads can be passed in many different forms:\n- `File` (or an object with the same structure)\n- a `fetch` `Response` (or an object with the same structure)\n- an `fs.ReadStream`\n- the return value of our `toFile` helper\n\n```ts\nimport fs from 'fs';\nimport Plumery, { toFile } from 'plumery';\n\nconst client = new Plumery();\n\n// If you have access to Node `fs` we recommend using `fs.createReadStream()`:\nawait client.loanApplications.uploadDocument('36a22460-ebc8-4ffe-a213-1683c5a420c5', {\n  documentType: 'INCOME_PROOF',\n  file: fs.createReadStream('/path/to/file'),\n  filename: 'filename',\n});\n\n// Or if you have the web `File` API you can pass a `File` instance:\nawait client.loanApplications.uploadDocument('36a22460-ebc8-4ffe-a213-1683c5a420c5', {\n  documentType: 'INCOME_PROOF',\n  file: new File(['my bytes'], 'file'),\n  filename: 'filename',\n});\n\n// You can also pass a `fetch` `Response`:\nawait client.loanApplications.uploadDocument('36a22460-ebc8-4ffe-a213-1683c5a420c5', {\n  documentType: 'INCOME_PROOF',\n  file: await fetch('https://somesite/file'),\n  filename: 'filename',\n});\n\n// Finally, if none of the above are convenient, you can use our `toFile` helper:\nawait client.loanApplications.uploadDocument('36a22460-ebc8-4ffe-a213-1683c5a420c5', {\n  documentType: 'INCOME_PROOF',\n  file: await toFile(Buffer.from('my bytes'), 'file'),\n  filename: 'filename',\n});\nawait client.loanApplications.uploadDocument('36a22460-ebc8-4ffe-a213-1683c5a420c5', {\n  documentType: 'INCOME_PROOF',\n  file: await toFile(new Uint8Array([0, 1, 2]), 'file'),\n  filename: 'filename',\n});\n```\n\n\n\n## Handling errors\n\nWhen the library is unable to connect to the API,\nor if the API returns a non-success status code (i.e., 4xx or 5xx response),\na subclass of `APIError` will be thrown:\n\n<!-- prettier-ignore -->\n```ts\nconst accounts = await client.parties.accounts.list('REPLACE_ME').catch(async (err) => {\n  if (err instanceof Plumery.APIError) {\n    console.log(err.status); // 400\n    console.log(err.name); // BadRequestError\n    console.log(err.headers); // {server: 'nginx', ...}\n  } else {\n    throw err;\n  }\n});\n```\n\nError codes are as follows:\n\n| Status Code | Error Type                 |\n| ----------- | -------------------------- |\n| 400         | `BadRequestError`          |\n| 401         | `AuthenticationError`      |\n| 403         | `PermissionDeniedError`    |\n| 404         | `NotFoundError`            |\n| 422         | `UnprocessableEntityError` |\n| 429         | `RateLimitError`           |\n| >=500       | `InternalServerError`      |\n| N/A         | `APIConnectionError`       |\n\n### Retries\n\nCertain errors will be automatically retried 2 times by default, with a short exponential backoff.\nConnection errors (for example, due to a network connectivity problem), 408 Request Timeout, 409 Conflict,\n429 Rate Limit, and >=500 Internal errors will all be retried by default.\n\nYou can use the `maxRetries` option to configure or disable this:\n\n<!-- prettier-ignore -->\n```js\n// Configure the default for all requests:\nconst client = new Plumery({\n  maxRetries: 0, // default is 2\n});\n\n// Or, configure per-request:\nawait client.parties.accounts.list('REPLACE_ME', {\n  maxRetries: 5,\n});\n```\n\n### Timeouts\n\nRequests time out after 1 minute by default. You can configure this with a `timeout` option:\n\n<!-- prettier-ignore -->\n```ts\n// Configure the default for all requests:\nconst client = new Plumery({\n  timeout: 20 * 1000, // 20 seconds (default is 1 minute)\n});\n\n// Override per-request:\nawait client.parties.accounts.list('REPLACE_ME', {\n  timeout: 5 * 1000,\n});\n```\n\nOn timeout, an `APIConnectionTimeoutError` is thrown.\n\nNote that requests which time out will be [retried twice by default](#retries).\n\n\n\n\n\n## Advanced Usage\n\n### Accessing raw Response data (e.g., headers)\n\nThe \"raw\" `Response` returned by `fetch()` can be accessed through the `.asResponse()` method on the `APIPromise` type that all methods return.\nThis method returns as soon as the headers for a successful response are received and does not consume the response body, so you are free to write custom parsing or streaming logic.\n\nYou can also use the `.withResponse()` method to get the raw `Response` along with the parsed data.\nUnlike `.asResponse()` this method consumes the body, returning once it is parsed.\n\n<!-- prettier-ignore -->\n```ts\nconst client = new Plumery();\n\nconst response = await client.parties.accounts.list('REPLACE_ME').asResponse();\nconsole.log(response.headers.get('X-My-Header'));\nconsole.log(response.statusText); // access the underlying Response object\n\nconst { data: accounts, response: raw } = await client.parties.accounts\n  .list('REPLACE_ME')\n  .withResponse();\nconsole.log(raw.headers.get('X-My-Header'));\nconsole.log(accounts.accounts);\n```\n\n### Logging\n\n> [!IMPORTANT]\n> All log messages are intended for debugging only. The format and content of log messages\n> may change between releases.\n\n#### Log levels\n\nThe log level can be configured in two ways:\n\n1. Via the `PLUMERY_LOG` environment variable\n2. Using the `logLevel` client option (overrides the environment variable if set)\n\n```ts\nimport Plumery from 'plumery';\n\nconst client = new Plumery({\n  logLevel: 'debug', // Show all log messages\n});\n```\n\nAvailable log levels, from most to least verbose:\n\n- `'debug'` - Show debug messages, info, warnings, and errors\n- `'info'` - Show info messages, warnings, and errors\n- `'warn'` - Show warnings and errors (default)\n- `'error'` - Show only errors\n- `'off'` - Disable all logging\n\nAt the `'debug'` level, all HTTP requests and responses are logged, including headers and bodies.\nSome authentication-related headers are redacted, but sensitive data in request and response bodies\nmay still be visible.\n\n#### Custom logger\n\nBy default, this library logs to `globalThis.console`. You can also provide a custom logger.\nMost logging libraries are supported, including [pino](https://www.npmjs.com/package/pino), [winston](https://www.npmjs.com/package/winston), [bunyan](https://www.npmjs.com/package/bunyan), [consola](https://www.npmjs.com/package/consola), [signale](https://www.npmjs.com/package/signale), and [@std/log](https://jsr.io/@std/log). If your logger doesn't work, please open an issue.\n\nWhen providing a custom logger, the `logLevel` option still controls which messages are emitted, messages\nbelow the configured level will not be sent to your logger.\n\n```ts\nimport Plumery from 'plumery';\nimport pino from 'pino';\n\nconst logger = pino();\n\nconst client = new Plumery({\n  logger: logger.child({ name: 'Plumery' }),\n  logLevel: 'debug', // Send all messages to pino, allowing it to filter\n});\n```\n\n### Making custom/undocumented requests\n\nThis library is typed for convenient access to the documented API. If you need to access undocumented\nendpoints, params, or response properties, the library can still be used.\n\n#### Undocumented endpoints\n\nTo make requests to undocumented endpoints, you can use `client.get`, `client.post`, and other HTTP verbs.\nOptions on the client, such as retries, will be respected when making these requests.\n\n```ts\nawait client.post('/some/path', {\n  body: { some_prop: 'foo' },\n  query: { some_query_arg: 'bar' },\n});\n```\n\n#### Undocumented request params\n\nTo make requests using undocumented parameters, you may use `// @ts-expect-error` on the undocumented\nparameter. This library doesn't validate at runtime that the request matches the type, so any extra values you\nsend will be sent as-is.\n\n```ts\nclient.parties.accounts.list({\n  // ...\n  // @ts-expect-error baz is not yet public\n  baz: 'undocumented option',\n});\n```\n\nFor requests with the `GET` verb, any extra params will be in the query, all other requests will send the\nextra param in the body.\n\nIf you want to explicitly send an extra argument, you can do so with the `query`, `body`, and `headers` request\noptions.\n\n#### Undocumented response properties\n\nTo access undocumented response properties, you may access the response object with `// @ts-expect-error` on\nthe response object, or cast the response object to the requisite type. Like the request params, we do not\nvalidate or strip extra properties from the response from the API.\n\n### Customizing the fetch client\n\nBy default, this library expects a global `fetch` function is defined.\n\nIf you want to use a different `fetch` function, you can either polyfill the global:\n\n```ts\nimport fetch from 'my-fetch';\n\nglobalThis.fetch = fetch;\n```\n\nOr pass it to the client:\n\n```ts\nimport Plumery from 'plumery';\nimport fetch from 'my-fetch';\n\nconst client = new Plumery({ fetch });\n```\n\n### Fetch options\n\nIf you want to set custom `fetch` options without overriding the `fetch` function, you can provide a `fetchOptions` object when instantiating the client or making a request. (Request-specific options override client options.)\n\n```ts\nimport Plumery from 'plumery';\n\nconst client = new Plumery({\n  fetchOptions: {\n    // `RequestInit` options\n  },\n});\n```\n\n#### Configuring proxies\n\nTo modify proxy behavior, you can provide custom `fetchOptions` that add runtime-specific proxy\noptions to requests:\n\n<img src=\"https://raw.githubusercontent.com/stainless-api/sdk-assets/refs/heads/main/node.svg\" align=\"top\" width=\"18\" height=\"21\"> **Node** <sup>[[docs](https://github.com/nodejs/undici/blob/main/docs/docs/api/ProxyAgent.md#example---proxyagent-with-fetch)]</sup>\n\n```ts\nimport Plumery from 'plumery';\nimport * as undici from 'undici';\n\nconst proxyAgent = new undici.ProxyAgent('http://localhost:8888');\nconst client = new Plumery({\n  fetchOptions: {\n    dispatcher: proxyAgent,\n  },\n});\n```\n\n<img src=\"https://raw.githubusercontent.com/stainless-api/sdk-assets/refs/heads/main/bun.svg\" align=\"top\" width=\"18\" height=\"21\"> **Bun** <sup>[[docs](https://bun.sh/guides/http/proxy)]</sup>\n\n```ts\nimport Plumery from 'plumery';\n\nconst client = new Plumery({\n  fetchOptions: {\n    proxy: 'http://localhost:8888',\n  },\n});\n```\n\n<img src=\"https://raw.githubusercontent.com/stainless-api/sdk-assets/refs/heads/main/deno.svg\" align=\"top\" width=\"18\" height=\"21\"> **Deno** <sup>[[docs](https://docs.deno.com/api/deno/~/Deno.createHttpClient)]</sup>\n\n```ts\nimport Plumery from 'npm:plumery';\n\nconst httpClient = Deno.createHttpClient({ proxy: { url: 'http://localhost:8888' } });\nconst client = new Plumery({\n  fetchOptions: {\n    client: httpClient,\n  },\n});\n```\n\n## Frequently Asked Questions\n\n## Semantic versioning\n\nThis package generally follows [SemVer](https://semver.org/spec/v2.0.0.html) conventions, though certain backwards-incompatible changes may be released as minor versions:\n\n1. Changes that only affect static types, without breaking runtime behavior.\n2. Changes to library internals which are technically public but not intended or documented for external use. _(Please open a GitHub issue to let us know if you are relying on such internals.)_\n3. Changes that we do not expect to impact the vast majority of users in practice.\n\nWe take backwards-compatibility seriously and work hard to ensure you can rely on a smooth upgrade experience.\n\nWe are keen for your feedback; please open an [issue](https://www.github.com/plumery/plumery-node/issues) with questions, bugs, or suggestions.\n\n## Requirements\n\nTypeScript >= 4.9 is supported.\n\nThe following runtimes are supported:\n\n- Web browsers (Up-to-date Chrome, Firefox, Safari, Edge, and more)\n- Node.js 20 LTS or later ([non-EOL](https://endoflife.date/nodejs)) versions.\n- Deno v1.28.0 or higher.\n- Bun 1.0 or later.\n- Cloudflare Workers.\n- Vercel Edge Runtime.\n- Jest 28 or greater with the `\"node\"` environment (`\"jsdom\"` is not supported at this time).\n- Nitro v2.6 or greater.\n\nNote that React Native is not supported at this time.\n\nIf you are interested in other runtime environments, please open or upvote an issue on GitHub.\n\n## Contributing\n\nSee [the contributing documentation](./CONTRIBUTING.md).\n",
  },
];

const INDEX_OPTIONS = {
  fields: [
    'name',
    'endpoint',
    'summary',
    'description',
    'qualified',
    'stainlessPath',
    'content',
    'sectionContext',
  ],
  storeFields: ['kind', '_original'],
  searchOptions: {
    prefix: true,
    fuzzy: 0.1,
    boost: {
      name: 5,
      stainlessPath: 3,
      endpoint: 3,
      qualified: 3,
      summary: 2,
      content: 1,
      description: 1,
    } as Record<string, number>,
  },
};

/**
 * Self-contained local search engine backed by MiniSearch.
 * Method data is embedded at SDK build time; prose documents
 * can be loaded from an optional docs directory at runtime.
 */
export class LocalDocsSearch {
  private methodIndex: MiniSearch<MiniSearchDocument>;
  private proseIndex: MiniSearch<MiniSearchDocument>;

  private constructor() {
    this.methodIndex = new MiniSearch<MiniSearchDocument>(INDEX_OPTIONS);
    this.proseIndex = new MiniSearch<MiniSearchDocument>(INDEX_OPTIONS);
  }

  static async create(opts?: { docsDir?: string }): Promise<LocalDocsSearch> {
    const instance = new LocalDocsSearch();
    instance.indexMethods(EMBEDDED_METHODS);
    for (const readme of EMBEDDED_READMES) {
      instance.indexProse(readme.content, `readme:${readme.language}`);
    }
    if (opts?.docsDir) {
      await instance.loadDocsDirectory(opts.docsDir);
    }
    return instance;
  }

  search(props: {
    query: string;
    language?: string;
    detail?: string;
    maxResults?: number;
    maxLength?: number;
  }): SearchResult {
    const { query, language = 'typescript', detail = 'default', maxResults = 5, maxLength = 100_000 } = props;

    const useMarkdown = detail === 'verbose' || detail === 'high';

    // Search both indices and merge results by score.
    // Filter prose hits so language-tagged content (READMEs and docs with
    // frontmatter) only matches the requested language.
    const methodHits = this.methodIndex
      .search(query)
      .map((hit) => ({ ...hit, _kind: 'http_method' as const }));
    const proseHits = this.proseIndex
      .search(query)
      .filter((hit) => {
        const source = ((hit as Record<string, unknown>)['_original'] as ProseChunk | undefined)?.source;
        if (!source) return true;
        // Check for language-tagged sources: "readme:<lang>" or "lang:<lang>:<filename>"
        let taggedLang: string | undefined;
        if (source.startsWith('readme:')) taggedLang = source.slice('readme:'.length);
        else if (source.startsWith('lang:')) taggedLang = source.split(':')[1];
        if (!taggedLang) return true;
        return taggedLang === language || (language === 'javascript' && taggedLang === 'typescript');
      })
      .map((hit) => ({ ...hit, _kind: 'prose' as const }));
    const merged = [...methodHits, ...proseHits].sort((a, b) => b.score - a.score);
    const top = merged.slice(0, maxResults);

    const fullResults: (string | Record<string, unknown>)[] = [];

    for (const hit of top) {
      const original = (hit as Record<string, unknown>)['_original'];
      if (hit._kind === 'http_method') {
        const m = original as MethodEntry;
        if (useMarkdown && m.markdown) {
          fullResults.push(m.markdown);
        } else {
          // Use per-language data when available, falling back to the
          // top-level fields (which are TypeScript-specific in the
          // legacy codepath).
          const langData = m.perLanguage?.[language];
          fullResults.push({
            method: langData?.method ?? m.qualified,
            summary: m.summary,
            description: m.description,
            endpoint: `${m.httpMethod.toUpperCase()} ${m.endpoint}`,
            ...(langData?.example ? { example: langData.example } : {}),
            ...(m.params ? { params: m.params } : {}),
            ...(m.response ? { response: m.response } : {}),
          });
        }
      } else {
        const c = original as ProseChunk;
        fullResults.push({
          content: c.content,
          ...(c.source ? { source: c.source } : {}),
        });
      }
    }

    let totalLength = 0;
    const results: (string | Record<string, unknown>)[] = [];
    for (const result of fullResults) {
      const len = typeof result === 'string' ? result.length : JSON.stringify(result).length;
      totalLength += len;
      if (totalLength > maxLength) break;
      results.push(result);
    }

    if (results.length < fullResults.length) {
      results.unshift(`Truncated; showing ${results.length} of ${fullResults.length} results.`);
    }

    return { results };
  }

  private indexMethods(methods: MethodEntry[]): void {
    const docs: MiniSearchDocument[] = methods.map((m, i) => ({
      id: `method-${i}`,
      kind: 'http_method' as const,
      name: m.name,
      endpoint: m.endpoint,
      summary: m.summary,
      description: m.description,
      qualified: m.qualified,
      stainlessPath: m.stainlessPath,
      _original: m as unknown as Record<string, unknown>,
    }));
    if (docs.length > 0) {
      this.methodIndex.addAll(docs);
    }
  }

  private async loadDocsDirectory(docsDir: string): Promise<void> {
    let entries;
    try {
      entries = await fs.readdir(docsDir, { withFileTypes: true });
    } catch (err) {
      getLogger().warn({ err, docsDir }, 'Could not read docs directory');
      return;
    }

    const files = entries
      .filter((e) => e.isFile())
      .filter((e) => e.name.endsWith('.md') || e.name.endsWith('.markdown') || e.name.endsWith('.json'));

    for (const file of files) {
      try {
        const filePath = path.join(docsDir, file.name);
        const content = await fs.readFile(filePath, 'utf-8');

        if (file.name.endsWith('.json')) {
          const texts = extractTexts(JSON.parse(content));
          if (texts.length > 0) {
            this.indexProse(texts.join('\n\n'), file.name);
          }
        } else {
          // Parse optional YAML frontmatter for language tagging.
          // Files with a "language" field in frontmatter will only
          // surface in searches for that language.
          //
          // Example:
          //   ---
          //   language: python
          //   ---
          //   # Error handling in Python
          //   ...
          const frontmatter = parseFrontmatter(content);
          const source = frontmatter.language ? `lang:${frontmatter.language}:${file.name}` : file.name;
          this.indexProse(content, source);
        }
      } catch (err) {
        getLogger().warn({ err, file: file.name }, 'Failed to index docs file');
      }
    }
  }

  private indexProse(markdown: string, source: string): void {
    const chunks = chunkMarkdown(markdown);
    const baseId = this.proseIndex.documentCount;

    const docs: MiniSearchDocument[] = chunks.map((chunk, i) => ({
      id: `prose-${baseId + i}`,
      kind: 'prose' as const,
      content: chunk.content,
      ...(chunk.sectionContext != null ? { sectionContext: chunk.sectionContext } : {}),
      _original: { ...chunk, source } as unknown as Record<string, unknown>,
    }));

    if (docs.length > 0) {
      this.proseIndex.addAll(docs);
    }
  }
}

/** Lightweight markdown chunker — splits on headers, chunks by word count. */
function chunkMarkdown(markdown: string): { content: string; tag: string; sectionContext?: string }[] {
  // Strip YAML frontmatter
  const stripped = markdown.replace(/^---\n[\s\S]*?\n---\n?/, '');
  const lines = stripped.split('\n');

  const chunks: { content: string; tag: string; sectionContext?: string }[] = [];
  const headers: string[] = [];
  let current: string[] = [];

  const flush = () => {
    const text = current.join('\n').trim();
    if (!text) return;
    const sectionContext = headers.length > 0 ? headers.join(' > ') : undefined;
    // Split into ~200-word chunks
    const words = text.split(/\s+/);
    for (let i = 0; i < words.length; i += 200) {
      const slice = words.slice(i, i + 200).join(' ');
      if (slice) {
        chunks.push({ content: slice, tag: 'p', ...(sectionContext != null ? { sectionContext } : {}) });
      }
    }
    current = [];
  };

  for (const line of lines) {
    const headerMatch = line.match(/^(#{1,6})\s+(.+)/);
    if (headerMatch) {
      flush();
      const level = headerMatch[1]!.length;
      const text = headerMatch[2]!.trim();
      while (headers.length >= level) headers.pop();
      headers.push(text);
    } else {
      current.push(line);
    }
  }
  flush();

  return chunks;
}

/** Recursively extracts string values from a JSON structure. */
function extractTexts(data: unknown, depth = 0): string[] {
  if (depth > 10) return [];
  if (typeof data === 'string') return data.trim() ? [data] : [];
  if (Array.isArray(data)) return data.flatMap((item) => extractTexts(item, depth + 1));
  if (typeof data === 'object' && data !== null) {
    return Object.values(data).flatMap((v) => extractTexts(v, depth + 1));
  }
  return [];
}

/** Parses YAML frontmatter from a markdown string, extracting the language field if present. */
function parseFrontmatter(markdown: string): { language?: string } {
  const match = markdown.match(/^---\n([\s\S]*?)\n---/);
  if (!match) return {};
  const body = match[1] ?? '';
  const langMatch = body.match(/^language:\s*(.+)$/m);
  return langMatch ? { language: langMatch[1]!.trim() } : {};
}
