Repository: ory/kratos
Pull request #1274 (2021-04-26 13:38:40)

feat: Include Credentials Metadata in admin api.
## Related issue
#820


## Checklist
- [x] I have read the [contributing guidelines](../blob/master/CONTRIBUTING.md).
- [x] I have read the [security policy](../security/policy).
- [x] I confirm that this pull request does not address a security
      vulnerability. If this pull request addresses a security. vulnerability, I
      confirm that I got green light (please contact
      [security@ory.sh](mailto:security@ory.sh)) from the maintainers to push
      the changes.
- [x] I have added tests that prove my fix is effective or that my feature
      works.
- [ ] I have added or changed [the documentation](docs/docs).

## Further comments

This is a simple attempt to add the information of the last changed date to the admin api for "get identity".
I'd like to see what you think about it.

zepatrik: This PR adds information about the last credential update, not the identity creation date :thinking: 
aeneasr: My bad, in that case here: https://github.com/ory/kratos/blob/master/identity/credentials.go#L50
martinei: I think that does not work because of: https://github.com/ory/kratos/blob/master/identity/identity.go#L42
I think it is/was a security decission to not include credentials in identities JSON representation.

That's why I created a separate representation model here to have control over what is exposed via the API.

martinei: > You will also have to adjust the swagger annotations here https://github.com/ory/kratos/pull/1274/files#diff-461d37b91ce0b27e82db7c21166a58a7f8bea1446854e488822f8b79ad95a4e6R161

Can you give me a hint how to generate  openapi/swagger document from the go code? 
martinei: Never mind. I found  `make sdk`.
martinei: It Looks like the embedded Struct here does not survive the openapi spec and code generation circle:
```
type IdentityWithCredentialsMetadata struct {
	*Identity
	Credentials map[CredentialsType]CredentialRepresentation `json:"Credentials"`
}
```

Any Idea how I could easily add additional Properties (Like the credentials Meta Data) to the JSON representation of Identity  without breaking code generation?
Currenlty the Only Option I see would be duplicating everything into a transfer model.
aeneasr: I thought about this approach a bit more - and sorry for iterating over this. I looked at the PR and I think that swagger will cause some issues - Discriminators are kinda difficult to use and the resulting schema might be problematic in some of the generators. I have however an idea for an alternative. The idea is as follows:

1. Change `Credentials map[CredentialsType]Credentials `json:"-" faker:"-" db:"-"`` to `Credentials map[CredentialsType]Credentials `json:"credentials,omitempty" faker:"-" db:"-"``
2. Add method `MarshalJSON()` and `UnmarshalJSON()` to `identity.Identity` which remove (encoding) / ignore (decoding) the `credentials` field per default.
3. Add method `MarshalJSONWithCredentials` to Identity which would include the credentials but remove the `credentials.config` part which includes the hashed passwords and other configs
4. Add tests to ensure that credentials are omitted for both pass-by-value (so `json.Marshall(identity.Identity{Credentials: /*...*/})` as well as pass-by-reference (`json.Marshall(identity.Identity{Credentials: /*...*/})`

That way we don't have to mess with swagger, we have a tried & tested set up, and it doesn't break the SDK APIs with the changed discriminators.

What do you think? Sorry for coming up with the idea just now but I had to look into the PR and try out the SDK to understand what could be improved :)
martinei: Thank you for the review! I aggre that discriminator is kind of a hack (given that we don't even have/use polymorphic serialization here). 
I think the approach you outlined would work technically and I am willing to update the MR if this is the way you want to go. However first I want to raise the following concern and a question:

- This puts even more Details of Kratos API / Interface into the domain "Object" ("Identity") making it harder to understand the boundary behavior from code. 
A much cleaner solution would be to have dedicated structs and mapping methods to represent the api interface. This would decouple the core model (already coupled to the DB)  from the API representation (which is through code generation already coupled tightly to the SDKs.
- The "Credentials" struct already carries some JSON Tags. Where are credentials currently serialized to JSON? We would need to update `UpdatedAt time.Time `json:"-" db:"updated_at"`` to `UpdatedAt time.Time `json:"updatedAt" db:"updated_at"``. What side effects does this have? 
aeneasr: > This puts even more Details of Kratos API / Interface into the domain "Object" ("Identity") making it harder to understand the boundary behavior from code.
>
> A much cleaner solution would be to have dedicated structs and mapping methods to represent the api interface. This would decouple the core model (already coupled to the DB) from the API representation (which is through code generation already coupled tightly to the SDKs.

That's definitely true - however at the moment we do this in all of Ory's products as it is easier to maintain, review, and contribute to if changes do not need to touch several places. So this is fine from my side!

> The "Credentials" struct already carries some JSON Tags. Where are credentials currently serialized to JSON? We would need to update UpdatedAt time.Time json:"-" db:"updated_at" to `UpdatedAt time.Time `json:"updatedAt" db:"updated_at". What side effects does this have?

That doesn't have side effects and is ok / desired. I'm generally going to be exposing these fields in the future!
martinei: > That's definitely true - however at the moment we do this in all of Ory's products as it is easier to maintain, review, and contribute to if changes do not need to touch several places. So this is fine from my side!

Ok. I'll give it a try (however I am busy today with other stuff).
martinei: @aeneasr I pushed the changes with a small variation of you proposal: Instead of `MarshalJSONWithCredentials` I have implemented `MarshalJSON` on a Type Alias.

Patch:
diff --git a/.circleci/config.yml b/.circleci/config.yml
index 6197415cd..46e210763 100644
--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@ -209,6 +209,7 @@ workflows:
             tags:
               only: /.*/
       - goreleaser/render-version-schema:
+          schema-path: driver/config/.schema/config.schema.json
           requires:
             - goreleaser/release
           filters:
diff --git a/.schema/version.schema.json b/.schema/version.schema.json
index 3a25835b8..167cf769f 100644
--- a/.schema/version.schema.json
+++ b/.schema/version.schema.json
@@ -126,7 +126,7 @@
                     }
                 },
                 {
-                    "$ref": "https://raw.githubusercontent.com/ory/kratos/v0.6.0-alpha.1/.schema/config.schema.json"
+                    "$ref": "https://raw.githubusercontent.com/ory/kratos/v0.6.0-alpha.1/driver/config/.schema/config.schema.json"
                 }
             ]
         },
@@ -140,7 +140,7 @@
                     }
                 },
                 {
-                    "$ref": "https://raw.githubusercontent.com/ory/kratos/v0.6.0-alpha.2/.schema/config.schema.json"
+                    "$ref": "https://raw.githubusercontent.com/ory/kratos/v0.6.0-alpha.2/driver/config/.schema/config.schema.json"
                 }
             ]
         },
@@ -154,7 +154,7 @@
                     }
                 },
                 {
-                    "$ref": "https://raw.githubusercontent.com/ory/kratos/v0.6.1-alpha.1/.schema/config.schema.json"
+                    "$ref": "https://raw.githubusercontent.com/ory/kratos/v0.6.1-alpha.1/driver/config/.schema/config.schema.json"
                 }
             ]
         },
@@ -168,7 +168,7 @@
                     }
                 },
                 {
-                    "$ref": "https://raw.githubusercontent.com/ory/kratos/v0.6.2-alpha.1/.schema/config.schema.json"
+                    "$ref": "https://raw.githubusercontent.com/ory/kratos/v0.6.2-alpha.1/driver/config/.schema/config.schema.json"
                 }
             ]
         },
@@ -182,7 +182,7 @@
                     }
                 },
                 {
-                    "$ref": "https://raw.githubusercontent.com/ory/kratos/v0.6.3-alpha.1/.schema/config.schema.json"
+                    "$ref": "https://raw.githubusercontent.com/ory/kratos/v0.6.3-alpha.1/driver/config/.schema/config.schema.json"
                 }
             ]
         }
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 52205bd9b..286018fce 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -4,116 +4,118 @@
 <!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
 **Table of Contents**
 
-- [Unreleased (2021-05-17)](#unreleased-2021-05-17)
-  - [0.6.3-alpha.1 (2021-05-17)](#063-alpha1-2021-05-17)
+- [Unreleased (2021-05-18)](#unreleased-2021-05-18)
     - [Bug Fixes](#bug-fixes)
+    - [Documentation](#documentation)
+  - [0.6.3-alpha.1 (2021-05-17)](#063-alpha1-2021-05-17)
+    - [Bug Fixes](#bug-fixes-1)
     - [Code Refactoring](#code-refactoring)
     - [BREAKING CHANGES](#breaking-changes)
   - [0.6.2-alpha.1 (2021-05-14)](#062-alpha1-2021-05-14)
-    - [Documentation](#documentation)
+    - [Documentation](#documentation-1)
   - [0.6.1-alpha.1 (2021-05-11)](#061-alpha1-2021-05-11)
     - [Features](#features)
 - [0.6.0-alpha.2 (2021-05-07)](#060-alpha2-2021-05-07)
-    - [Bug Fixes](#bug-fixes-1)
+    - [Bug Fixes](#bug-fixes-2)
     - [Features](#features-1)
 - [0.6.0-alpha.1 (2021-05-05)](#060-alpha1-2021-05-05)
-    - [Bug Fixes](#bug-fixes-2)
+    - [Bug Fixes](#bug-fixes-3)
     - [Code Refactoring](#code-refactoring-1)
-    - [Documentation](#documentation-1)
+    - [Documentation](#documentation-2)
     - [Features](#features-2)
     - [Tests](#tests)
     - [Unclassified](#unclassified)
     - [BREAKING CHANGES](#breaking-changes-1)
   - [0.5.5-alpha.1 (2020-12-09)](#055-alpha1-2020-12-09)
-    - [Bug Fixes](#bug-fixes-3)
-    - [Documentation](#documentation-2)
+    - [Bug Fixes](#bug-fixes-4)
+    - [Documentation](#documentation-3)
     - [Features](#features-3)
     - [Tests](#tests-1)
     - [Unclassified](#unclassified-1)
   - [0.5.4-alpha.1 (2020-11-11)](#054-alpha1-2020-11-11)
-    - [Bug Fixes](#bug-fixes-4)
+    - [Bug Fixes](#bug-fixes-5)
     - [Code Refactoring](#code-refactoring-2)
-    - [Documentation](#documentation-3)
+    - [Documentation](#documentation-4)
     - [Features](#features-4)
   - [0.5.3-alpha.1 (2020-10-27)](#053-alpha1-2020-10-27)
-    - [Bug Fixes](#bug-fixes-5)
-    - [Documentation](#documentation-4)
+    - [Bug Fixes](#bug-fixes-6)
+    - [Documentation](#documentation-5)
     - [Features](#features-5)
     - [Tests](#tests-2)
   - [0.5.2-alpha.1 (2020-10-22)](#052-alpha1-2020-10-22)
-    - [Bug Fixes](#bug-fixes-6)
-    - [Documentation](#documentation-5)
-    - [Tests](#tests-3)
-  - [0.5.1-alpha.1 (2020-10-20)](#051-alpha1-2020-10-20)
     - [Bug Fixes](#bug-fixes-7)
     - [Documentation](#documentation-6)
+    - [Tests](#tests-3)
+  - [0.5.1-alpha.1 (2020-10-20)](#051-alpha1-2020-10-20)
+    - [Bug Fixes](#bug-fixes-8)
+    - [Documentation](#documentation-7)
     - [Features](#features-6)
     - [Tests](#tests-4)
     - [Unclassified](#unclassified-2)
 - [0.5.0-alpha.1 (2020-10-15)](#050-alpha1-2020-10-15)
-    - [Bug Fixes](#bug-fixes-8)
+    - [Bug Fixes](#bug-fixes-9)
     - [Code Refactoring](#code-refactoring-3)
-    - [Documentation](#documentation-7)
+    - [Documentation](#documentation-8)
     - [Features](#features-7)
     - [Tests](#tests-5)
     - [Unclassified](#unclassified-3)
     - [BREAKING CHANGES](#breaking-changes-2)
   - [0.4.6-alpha.1 (2020-07-13)](#046-alpha1-2020-07-13)
-    - [Bug Fixes](#bug-fixes-9)
-  - [0.4.5-alpha.1 (2020-07-13)](#045-alpha1-2020-07-13)
     - [Bug Fixes](#bug-fixes-10)
-  - [0.4.4-alpha.1 (2020-07-10)](#044-alpha1-2020-07-10)
+  - [0.4.5-alpha.1 (2020-07-13)](#045-alpha1-2020-07-13)
     - [Bug Fixes](#bug-fixes-11)
-    - [Documentation](#documentation-8)
-  - [0.4.3-alpha.1 (2020-07-08)](#043-alpha1-2020-07-08)
+  - [0.4.4-alpha.1 (2020-07-10)](#044-alpha1-2020-07-10)
     - [Bug Fixes](#bug-fixes-12)
-  - [0.4.2-alpha.1 (2020-07-08)](#042-alpha1-2020-07-08)
+    - [Documentation](#documentation-9)
+  - [0.4.3-alpha.1 (2020-07-08)](#043-alpha1-2020-07-08)
     - [Bug Fixes](#bug-fixes-13)
-- [0.4.0-alpha.1 (2020-07-08)](#040-alpha1-2020-07-08)
+  - [0.4.2-alpha.1 (2020-07-08)](#042-alpha1-2020-07-08)
     - [Bug Fixes](#bug-fixes-14)
+- [0.4.0-alpha.1 (2020-07-08)](#040-alpha1-2020-07-08)
+    - [Bug Fixes](#bug-fixes-15)
     - [Code Refactoring](#code-refactoring-4)
-    - [Documentation](#documentation-9)
+    - [Documentation](#documentation-10)
     - [Features](#features-8)
     - [Unclassified](#unclassified-4)
     - [BREAKING CHANGES](#breaking-changes-3)
 - [0.3.0-alpha.1 (2020-05-15)](#030-alpha1-2020-05-15)
-    - [Bug Fixes](#bug-fixes-15)
+    - [Bug Fixes](#bug-fixes-16)
     - [Code Refactoring](#code-refactoring-5)
-    - [Documentation](#documentation-10)
+    - [Documentation](#documentation-11)
     - [Features](#features-9)
     - [Unclassified](#unclassified-5)
     - [BREAKING CHANGES](#breaking-changes-4)
   - [0.2.1-alpha.1 (2020-05-05)](#021-alpha1-2020-05-05)
-    - [Documentation](#documentation-11)
+    - [Documentation](#documentation-12)
 - [0.2.0-alpha.2 (2020-05-04)](#020-alpha2-2020-05-04)
-    - [Bug Fixes](#bug-fixes-16)
+    - [Bug Fixes](#bug-fixes-17)
     - [Code Refactoring](#code-refactoring-6)
-    - [Documentation](#documentation-12)
+    - [Documentation](#documentation-13)
     - [Features](#features-10)
     - [Unclassified](#unclassified-6)
     - [BREAKING CHANGES](#breaking-changes-5)
   - [0.1.1-alpha.1 (2020-02-18)](#011-alpha1-2020-02-18)
-    - [Bug Fixes](#bug-fixes-17)
+    - [Bug Fixes](#bug-fixes-18)
     - [Code Refactoring](#code-refactoring-7)
-    - [Documentation](#documentation-13)
+    - [Documentation](#documentation-14)
 - [0.1.0-alpha.6 (2020-02-16)](#010-alpha6-2020-02-16)
-    - [Bug Fixes](#bug-fixes-18)
+    - [Bug Fixes](#bug-fixes-19)
     - [Code Refactoring](#code-refactoring-8)
-    - [Documentation](#documentation-14)
+    - [Documentation](#documentation-15)
     - [Features](#features-11)
 - [0.1.0-alpha.5 (2020-02-06)](#010-alpha5-2020-02-06)
-    - [Documentation](#documentation-15)
+    - [Documentation](#documentation-16)
     - [Features](#features-12)
 - [0.1.0-alpha.4 (2020-02-06)](#010-alpha4-2020-02-06)
-    - [Documentation](#documentation-16)
+    - [Documentation](#documentation-17)
 - [0.1.0-alpha.3 (2020-02-06)](#010-alpha3-2020-02-06)
 - [0.1.0-alpha.2 (2020-02-03)](#010-alpha2-2020-02-03)
-    - [Bug Fixes](#bug-fixes-19)
-    - [Documentation](#documentation-17)
+    - [Bug Fixes](#bug-fixes-20)
+    - [Documentation](#documentation-18)
     - [Features](#features-13)
     - [Unclassified](#unclassified-7)
 - [0.1.0-alpha.1 (2020-01-31)](#010-alpha1-2020-01-31)
-    - [Documentation](#documentation-18)
+    - [Documentation](#documentation-19)
   - [0.0.3-alpha.15 (2020-01-31)](#003-alpha15-2020-01-31)
     - [Unclassified](#unclassified-8)
   - [0.0.3-alpha.14 (2020-01-31)](#003-alpha14-2020-01-31)
@@ -143,14 +145,23 @@
   - [0.0.1-alpha.3 (2020-01-28)](#001-alpha3-2020-01-28)
   - [0.0.1-alpha.2 (2020-01-28)](#001-alpha2-2020-01-28)
   - [0.0.1-alpha.1 (2020-01-28)](#001-alpha1-2020-01-28)
-    - [Documentation](#documentation-19)
+    - [Documentation](#documentation-20)
     - [Unclassified](#unclassified-20)
 
 <!-- END doctoc generated TOC please keep comment here to allow auto update -->
 
-# Unreleased (2021-05-17)
+# [Unreleased](https://github.com/ory/kratos/compare/v0.6.3-alpha.1...cba8b00c8b755cc0bdc7818bc9d7390ff3532ce1) (2021-05-18)
+
+
+### Bug Fixes
+
+* Rename client package for external consumption ([cba8b00](https://github.com/ory/kratos/commit/cba8b00c8b755cc0bdc7818bc9d7390ff3532ce1))
+
+
+### Documentation
+
+* Update sdk use ([bcb8c06](https://github.com/ory/kratos/commit/bcb8c06ee324c639e548fc06315d9e952f470582))
 
-No significant changes have been made for this release.
 
 
 ## [0.6.3-alpha.1](https://github.com/ory/kratos/compare/v0.6.2-alpha.1...v0.6.3-alpha.1) (2021-05-17)
diff --git a/go.mod b/go.mod
index c871269f6..dc05867bc 100644
--- a/go.mod
+++ b/go.mod
@@ -87,7 +87,7 @@ require (
 	github.com/tidwall/sjson v1.1.5
 	github.com/urfave/negroni v1.0.0
 	golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2
-	golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5
+	golang.org/x/oauth2 v0.0.0-20210323180902-22b0adad7558
 	golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9
 	golang.org/x/tools v0.1.0
 )
diff --git a/go.sum b/go.sum
index b8f76384e..da9f37584 100644
--- a/go.sum
+++ b/go.sum
@@ -1166,6 +1166,10 @@ github.com/ory/jsonschema/v3 v3.0.1/go.mod h1:jgLHekkFk0uiGdEWGleC+tOm6JSSP8cbf1
 github.com/ory/jsonschema/v3 v3.0.3 h1:Y7KT4n84ROq8pJ3IMf9JDAulXqYKSU5xUtHjdQFbCLI=
 github.com/ory/jsonschema/v3 v3.0.3/go.mod h1:JvXwbx7IxAkIAo7Qo5OSC1lea+w12DtYGV8h+MTAfnA=
 github.com/ory/kratos v0.6.0-alpha.2/go.mod h1:oF3J9illU6GoaF8w8twQvCBaDRdRdAGaAOHvjU2GLCA=
+github.com/ory/kratos-client-go v0.5.4-alpha.1.0.20210308170950-06c2c1c071a8/go.mod h1:lNIKJWYvMzqPQb94XLV7MZFc5AQpdiR07wzbo+CqZlw=
+github.com/ory/kratos-client-go v0.6.1-alpha.1/go.mod h1:dOQIsar76K07wMPJD/6aMhrWyY+sFGEagLDLso1CpsA=
+github.com/ory/kratos-client-go v0.6.3-alpha.1 h1:nKD4KshiHLfBW+KsNK6o03zGLeRG1pZqnkw9h37R5NE=
+github.com/ory/kratos-client-go v0.6.3-alpha.1/go.mod h1:dOQIsar76K07wMPJD/6aMhrWyY+sFGEagLDLso1CpsA=
 github.com/ory/mail v2.3.1+incompatible h1:vHntHDHtQXamt2T+iwTTlCoBkDvILUeujE9Ocwe9md4=
 github.com/ory/mail v2.3.1+incompatible/go.mod h1:87D9/1gB6ewElQoN0lXJ0ayfqcj3cW3qCTXh+5E9mfU=
 github.com/ory/mail/v3 v3.0.0 h1:8LFMRj473vGahFD/ntiotWEd4S80FKYFtiZTDfOQ+sM=
@@ -1647,8 +1651,9 @@ golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4Iltr
 golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
 golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
 golang.org/x/oauth2 v0.0.0-20201109201403-9fd604954f58/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
-golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5 h1:Lm4OryKCca1vehdsWogr9N4t7NfZxLbJoc/H0w4K4S4=
 golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
+golang.org/x/oauth2 v0.0.0-20210323180902-22b0adad7558 h1:D7nTwh4J0i+5mW4Zjzn5omvlr6YBcWywE6KOcatyNxY=
+golang.org/x/oauth2 v0.0.0-20210323180902-22b0adad7558/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
 golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
diff --git a/identity/credentials.go b/identity/credentials.go
index 20ae545d4..48e679b53 100644
--- a/identity/credentials.go
+++ b/identity/credentials.go
@@ -42,7 +42,7 @@ type Credentials struct {
 
 	// Config contains the concrete credential payload. This might contain the bcrypt-hashed password, or the email
 	// for passwordless authentication.
-	Config sqlxx.JSONRawMessage `json:"config" db:"config"`
+	Config sqlxx.JSONRawMessage `json:"config,omitempty" db:"config"`
 
 	IdentityID uuid.UUID `json:"-" faker:"-" db:"identity_id"`
 
diff --git a/identity/identity.go b/identity/identity.go
index 1044312bf..6674aa933 100644
--- a/identity/identity.go
+++ b/identity/identity.go
@@ -38,7 +38,7 @@ type Identity struct {
 	ID uuid.UUID `json:"id" faker:"-" db:"id"`
 
 	// Credentials represents all credentials that can be used for authenticating this identity.
-	Credentials map[CredentialsType]Credentials `json:"-" faker:"-" db:"-"`
+	Credentials map[CredentialsType]Credentials `json:"credentials,omitempty" faker:"-" db:"-"`
 
 	// SchemaID is the ID of the JSON Schema to be used for validating the identity's traits.
 	//
@@ -193,3 +193,36 @@ func (i Identity) GetID() uuid.UUID {
 func (i Identity) GetNID() uuid.UUID {
 	return i.NID
 }
+
+func (i Identity) MarshalJSON() ([]byte, error) {
+	type localIdentity Identity
+	i.Credentials = nil
+	result, err := json.Marshal(localIdentity(i))
+	if err != nil {
+		return nil, err
+	}
+	return result, nil
+}
+
+func (i *Identity) UnmarshalJSON(b []byte) error {
+	type localIdentity Identity
+	err := json.Unmarshal(b, (*localIdentity)(i))
+	i.Credentials = nil
+	return err
+}
+
+type IdentityWithCredentialsMetadataInJSON Identity
+
+func (i IdentityWithCredentialsMetadataInJSON) MarshalJSON() ([]byte, error) {
+	type localIdentity Identity
+	for k, v := range i.Credentials {
+		v.Config = nil
+		i.Credentials[k] = v
+	}
+
+	result, err := json.Marshal(localIdentity(i))
+	if err != nil {
+		return nil, err
+	}
+	return result, nil
+}
diff --git a/internal/httpclient/api/openapi.yaml b/internal/httpclient/api/openapi.yaml
index 9f7b20a10..4ee9a37bf 100644
--- a/internal/httpclient/api/openapi.yaml
+++ b/internal/httpclient/api/openapi.yaml
@@ -2465,6 +2465,15 @@ components:
           via: via
         traits: ""
         updated_at: 2000-01-23T04:56:07.000+00:00
+        credentials:
+          key:
+            updated_at: 2000-01-23T04:56:07.000+00:00
+            identifiers:
+            - identifiers
+            - identifiers
+            created_at: 2000-01-23T04:56:07.000+00:00
+            type: type
+            config: '{}'
         verifiable_addresses:
         - updated_at: 2014-01-01T23:28:56.782Z
           verified_at: 2000-01-23T04:56:07.000+00:00
@@ -2491,6 +2500,12 @@ components:
           description: CreatedAt is a helper struct field for gobuffalo.pop.
           format: date-time
           type: string
+        credentials:
+          additionalProperties:
+            $ref: '#/components/schemas/identityCredentials'
+          description: Credentials represents all credentials that can be used for
+            authenticating this identity.
+          type: object
         id:
           format: uuid4
           type: string
@@ -2536,6 +2551,14 @@ components:
       type: object
     identityCredentials:
       description: Credentials represents a specific credential type
+      example:
+        updated_at: 2000-01-23T04:56:07.000+00:00
+        identifiers:
+        - identifiers
+        - identifiers
+        created_at: 2000-01-23T04:56:07.000+00:00
+        type: type
+        config: '{}'
       properties:
         config:
           title: JSONRawMessage represents a json.RawMessage that works well with
@@ -2719,6 +2742,15 @@ components:
               via: via
             traits: ""
             updated_at: 2000-01-23T04:56:07.000+00:00
+            credentials:
+              key:
+                updated_at: 2000-01-23T04:56:07.000+00:00
+                identifiers:
+                - identifiers
+                - identifiers
+                created_at: 2000-01-23T04:56:07.000+00:00
+                type: type
+                config: '{}'
             verifiable_addresses:
             - updated_at: 2014-01-01T23:28:56.782Z
               verified_at: 2000-01-23T04:56:07.000+00:00
@@ -2994,6 +3026,15 @@ components:
             via: via
           traits: ""
           updated_at: 2000-01-23T04:56:07.000+00:00
+          credentials:
+            key:
+              updated_at: 2000-01-23T04:56:07.000+00:00
+              identifiers:
+              - identifiers
+              - identifiers
+              created_at: 2000-01-23T04:56:07.000+00:00
+              type: type
+              config: '{}'
           verifiable_addresses:
           - updated_at: 2014-01-01T23:28:56.782Z
             verified_at: 2000-01-23T04:56:07.000+00:00
@@ -3031,6 +3072,15 @@ components:
               via: via
             traits: ""
             updated_at: 2000-01-23T04:56:07.000+00:00
+            credentials:
+              key:
+                updated_at: 2000-01-23T04:56:07.000+00:00
+                identifiers:
+                - identifiers
+                - identifiers
+                created_at: 2000-01-23T04:56:07.000+00:00
+                type: type
+                config: '{}'
             verifiable_addresses:
             - updated_at: 2014-01-01T23:28:56.782Z
               verified_at: 2000-01-23T04:56:07.000+00:00
@@ -3135,6 +3185,15 @@ components:
             via: via
           traits: ""
           updated_at: 2000-01-23T04:56:07.000+00:00
+          credentials:
+            key:
+              updated_at: 2000-01-23T04:56:07.000+00:00
+              identifiers:
+              - identifiers
+              - identifiers
+              created_at: 2000-01-23T04:56:07.000+00:00
+              type: type
+              config: '{}'
           verifiable_addresses:
           - updated_at: 2014-01-01T23:28:56.782Z
             verified_at: 2000-01-23T04:56:07.000+00:00
@@ -3253,6 +3312,15 @@ components:
             via: via
           traits: ""
           updated_at: 2000-01-23T04:56:07.000+00:00
+          credentials:
+            key:
+              updated_at: 2000-01-23T04:56:07.000+00:00
+              identifiers:
+              - identifiers
+              - identifiers
+              created_at: 2000-01-23T04:56:07.000+00:00
+              type: type
+              config: '{}'
           verifiable_addresses:
           - updated_at: 2014-01-01T23:28:56.782Z
             verified_at: 2000-01-23T04:56:07.000+00:00
@@ -3363,6 +3431,15 @@ components:
             via: via
           traits: ""
           updated_at: 2000-01-23T04:56:07.000+00:00
+          credentials:
+            key:
+              updated_at: 2000-01-23T04:56:07.000+00:00
+              identifiers:
+              - identifiers
+              - identifiers
+              created_at: 2000-01-23T04:56:07.000+00:00
+              type: type
+              config: '{}'
           verifiable_addresses:
           - updated_at: 2014-01-01T23:28:56.782Z
             verified_at: 2000-01-23T04:56:07.000+00:00
@@ -3447,6 +3524,15 @@ components:
               via: via
             traits: ""
             updated_at: 2000-01-23T04:56:07.000+00:00
+            credentials:
+              key:
+                updated_at: 2000-01-23T04:56:07.000+00:00
+                identifiers:
+                - identifiers
+                - identifiers
+                created_at: 2000-01-23T04:56:07.000+00:00
+                type: type
+                config: '{}'
             verifiable_addresses:
             - updated_at: 2014-01-01T23:28:56.782Z
               verified_at: 2000-01-23T04:56:07.000+00:00
diff --git a/internal/httpclient/api_health.go b/internal/httpclient/api_health.go
deleted file mode 100644
index 05eca3c3c..000000000
--- a/internal/httpclient/api_health.go
+++ /dev/null
@@ -1,261 +0,0 @@
-/*
- * Ory Kratos
- *
- * Welcome to the Ory Kratos HTTP API documentation!
- *
- * API version: latest
- */
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package kratos
-
-import (
-	"bytes"
-	_context "context"
-	_ioutil "io/ioutil"
-	_nethttp "net/http"
-	_neturl "net/url"
-)
-
-// Linger please
-var (
-	_ _context.Context
-)
-
-// HealthApiService HealthApi service
-type HealthApiService service
-
-type HealthApiApiIsInstanceAliveRequest struct {
-	ctx        _context.Context
-	ApiService *HealthApiService
-}
-
-func (r HealthApiApiIsInstanceAliveRequest) Execute() (HealthStatus, *_nethttp.Response, error) {
-	return r.ApiService.IsInstanceAliveExecute(r)
-}
-
-/*
- * IsInstanceAlive Check alive status
- * This endpoint returns a 200 status code when the HTTP server is up running.
-This status does currently not include checks whether the database connection is working.
-
-If the service supports TLS Edge Termination, this endpoint does not require the
-`X-Forwarded-Proto` header to be set.
-
-Be aware that if you are running multiple nodes of this service, the health status will never
-refer to the cluster state, only to a single instance.
- * @param ctx _context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- * @return HealthApiApiIsInstanceAliveRequest
-*/
-func (a *HealthApiService) IsInstanceAlive(ctx _context.Context) HealthApiApiIsInstanceAliveRequest {
-	return HealthApiApiIsInstanceAliveRequest{
-		ApiService: a,
-		ctx:        ctx,
-	}
-}
-
-/*
- * Execute executes the request
- * @return HealthStatus
- */
-func (a *HealthApiService) IsInstanceAliveExecute(r HealthApiApiIsInstanceAliveRequest) (HealthStatus, *_nethttp.Response, error) {
-	var (
-		localVarHTTPMethod   = _nethttp.MethodGet
-		localVarPostBody     interface{}
-		localVarFormFileName string
-		localVarFileName     string
-		localVarFileBytes    []byte
-		localVarReturnValue  HealthStatus
-	)
-
-	localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "HealthApiService.IsInstanceAlive")
-	if err != nil {
-		return localVarReturnValue, nil, GenericOpenAPIError{error: err.Error()}
-	}
-
-	localVarPath := localBasePath + "/health/alive"
-
-	localVarHeaderParams := make(map[string]string)
-	localVarQueryParams := _neturl.Values{}
-	localVarFormParams := _neturl.Values{}
-
-	// to determine the Content-Type header
-	localVarHTTPContentTypes := []string{}
-
-	// set Content-Type header
-	localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
-	if localVarHTTPContentType != "" {
-		localVarHeaderParams["Content-Type"] = localVarHTTPContentType
-	}
-
-	// to determine the Accept header
-	localVarHTTPHeaderAccepts := []string{"application/json"}
-
-	// set Accept header
-	localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
-	if localVarHTTPHeaderAccept != "" {
-		localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
-	}
-	req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
-	if err != nil {
-		return localVarReturnValue, nil, err
-	}
-
-	localVarHTTPResponse, err := a.client.callAPI(req)
-	if err != nil || localVarHTTPResponse == nil {
-		return localVarReturnValue, localVarHTTPResponse, err
-	}
-
-	localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body)
-	localVarHTTPResponse.Body.Close()
-	localVarHTTPResponse.Body = _ioutil.NopCloser(bytes.NewBuffer(localVarBody))
-	if err != nil {
-		return localVarReturnValue, localVarHTTPResponse, err
-	}
-
-	if localVarHTTPResponse.StatusCode >= 300 {
-		newErr := GenericOpenAPIError{
-			body:  localVarBody,
-			error: localVarHTTPResponse.Status,
-		}
-		if localVarHTTPResponse.StatusCode == 500 {
-			var v GenericError
-			err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
-			if err != nil {
-				newErr.error = err.Error()
-				return localVarReturnValue, localVarHTTPResponse, newErr
-			}
-			newErr.model = v
-		}
-		return localVarReturnValue, localVarHTTPResponse, newErr
-	}
-
-	err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
-	if err != nil {
-		newErr := GenericOpenAPIError{
-			body:  localVarBody,
-			error: err.Error(),
-		}
-		return localVarReturnValue, localVarHTTPResponse, newErr
-	}
-
-	return localVarReturnValue, localVarHTTPResponse, nil
-}
-
-type HealthApiApiIsInstanceReadyRequest struct {
-	ctx        _context.Context
-	ApiService *HealthApiService
-}
-
-func (r HealthApiApiIsInstanceReadyRequest) Execute() (HealthStatus, *_nethttp.Response, error) {
-	return r.ApiService.IsInstanceReadyExecute(r)
-}
-
-/*
- * IsInstanceReady Check readiness status
- * This endpoint returns a 200 status code when the HTTP server is up running and the environment dependencies (e.g.
-the database) are responsive as well.
-
-If the service supports TLS Edge Termination, this endpoint does not require the
-`X-Forwarded-Proto` header to be set.
-
-Be aware that if you are running multiple nodes of this service, the health status will never
-refer to the cluster state, only to a single instance.
- * @param ctx _context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- * @return HealthApiApiIsInstanceReadyRequest
-*/
-func (a *HealthApiService) IsInstanceReady(ctx _context.Context) HealthApiApiIsInstanceReadyRequest {
-	return HealthApiApiIsInstanceReadyRequest{
-		ApiService: a,
-		ctx:        ctx,
-	}
-}
-
-/*
- * Execute executes the request
- * @return HealthStatus
- */
-func (a *HealthApiService) IsInstanceReadyExecute(r HealthApiApiIsInstanceReadyRequest) (HealthStatus, *_nethttp.Response, error) {
-	var (
-		localVarHTTPMethod   = _nethttp.MethodGet
-		localVarPostBody     interface{}
-		localVarFormFileName string
-		localVarFileName     string
-		localVarFileBytes    []byte
-		localVarReturnValue  HealthStatus
-	)
-
-	localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "HealthApiService.IsInstanceReady")
-	if err != nil {
-		return localVarReturnValue, nil, GenericOpenAPIError{error: err.Error()}
-	}
-
-	localVarPath := localBasePath + "/health/ready"
-
-	localVarHeaderParams := make(map[string]string)
-	localVarQueryParams := _neturl.Values{}
-	localVarFormParams := _neturl.Values{}
-
-	// to determine the Content-Type header
-	localVarHTTPContentTypes := []string{}
-
-	// set Content-Type header
-	localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
-	if localVarHTTPContentType != "" {
-		localVarHeaderParams["Content-Type"] = localVarHTTPContentType
-	}
-
-	// to determine the Accept header
-	localVarHTTPHeaderAccepts := []string{"application/json"}
-
-	// set Accept header
-	localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
-	if localVarHTTPHeaderAccept != "" {
-		localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
-	}
-	req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
-	if err != nil {
-		return localVarReturnValue, nil, err
-	}
-
-	localVarHTTPResponse, err := a.client.callAPI(req)
-	if err != nil || localVarHTTPResponse == nil {
-		return localVarReturnValue, localVarHTTPResponse, err
-	}
-
-	localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body)
-	localVarHTTPResponse.Body.Close()
-	localVarHTTPResponse.Body = _ioutil.NopCloser(bytes.NewBuffer(localVarBody))
-	if err != nil {
-		return localVarReturnValue, localVarHTTPResponse, err
-	}
-
-	if localVarHTTPResponse.StatusCode >= 300 {
-		newErr := GenericOpenAPIError{
-			body:  localVarBody,
-			error: localVarHTTPResponse.Status,
-		}
-		if localVarHTTPResponse.StatusCode == 503 {
-			var v HealthNotReadyStatus
-			err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
-			if err != nil {
-				newErr.error = err.Error()
-				return localVarReturnValue, localVarHTTPResponse, newErr
-			}
-			newErr.model = v
-		}
-		return localVarReturnValue, localVarHTTPResponse, newErr
-	}
-
-	err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
-	if err != nil {
-		newErr := GenericOpenAPIError{
-			body:  localVarBody,
-			error: err.Error(),
-		}
-		return localVarReturnValue, localVarHTTPResponse, newErr
-	}
-
-	return localVarReturnValue, localVarHTTPResponse, nil
-}
diff --git a/internal/httpclient/api_version.go b/internal/httpclient/api_version.go
deleted file mode 100644
index a6edaa077..000000000
--- a/internal/httpclient/api_version.go
+++ /dev/null
@@ -1,134 +0,0 @@
-/*
- * Ory Kratos
- *
- * Welcome to the Ory Kratos HTTP API documentation!
- *
- * API version: latest
- */
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package kratos
-
-import (
-	"bytes"
-	_context "context"
-	_ioutil "io/ioutil"
-	_nethttp "net/http"
-	_neturl "net/url"
-)
-
-// Linger please
-var (
-	_ _context.Context
-)
-
-// VersionApiService VersionApi service
-type VersionApiService service
-
-type VersionApiApiGetVersionRequest struct {
-	ctx        _context.Context
-	ApiService *VersionApiService
-}
-
-func (r VersionApiApiGetVersionRequest) Execute() (Version, *_nethttp.Response, error) {
-	return r.ApiService.GetVersionExecute(r)
-}
-
-/*
- * GetVersion Get service version
- * This endpoint returns the service version typically notated using semantic versioning.
-
-If the service supports TLS Edge Termination, this endpoint does not require the
-`X-Forwarded-Proto` header to be set.
-
-Be aware that if you are running multiple nodes of this service, the health status will never
-refer to the cluster state, only to a single instance.
- * @param ctx _context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
- * @return VersionApiApiGetVersionRequest
-*/
-func (a *VersionApiService) GetVersion(ctx _context.Context) VersionApiApiGetVersionRequest {
-	return VersionApiApiGetVersionRequest{
-		ApiService: a,
-		ctx:        ctx,
-	}
-}
-
-/*
- * Execute executes the request
- * @return Version
- */
-func (a *VersionApiService) GetVersionExecute(r VersionApiApiGetVersionRequest) (Version, *_nethttp.Response, error) {
-	var (
-		localVarHTTPMethod   = _nethttp.MethodGet
-		localVarPostBody     interface{}
-		localVarFormFileName string
-		localVarFileName     string
-		localVarFileBytes    []byte
-		localVarReturnValue  Version
-	)
-
-	localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "VersionApiService.GetVersion")
-	if err != nil {
-		return localVarReturnValue, nil, GenericOpenAPIError{error: err.Error()}
-	}
-
-	localVarPath := localBasePath + "/version"
-
-	localVarHeaderParams := make(map[string]string)
-	localVarQueryParams := _neturl.Values{}
-	localVarFormParams := _neturl.Values{}
-
-	// to determine the Content-Type header
-	localVarHTTPContentTypes := []string{}
-
-	// set Content-Type header
-	localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes)
-	if localVarHTTPContentType != "" {
-		localVarHeaderParams["Content-Type"] = localVarHTTPContentType
-	}
-
-	// to determine the Accept header
-	localVarHTTPHeaderAccepts := []string{"application/json"}
-
-	// set Accept header
-	localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts)
-	if localVarHTTPHeaderAccept != "" {
-		localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept
-	}
-	req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes)
-	if err != nil {
-		return localVarReturnValue, nil, err
-	}
-
-	localVarHTTPResponse, err := a.client.callAPI(req)
-	if err != nil || localVarHTTPResponse == nil {
-		return localVarReturnValue, localVarHTTPResponse, err
-	}
-
-	localVarBody, err := _ioutil.ReadAll(localVarHTTPResponse.Body)
-	localVarHTTPResponse.Body.Close()
-	localVarHTTPResponse.Body = _ioutil.NopCloser(bytes.NewBuffer(localVarBody))
-	if err != nil {
-		return localVarReturnValue, localVarHTTPResponse, err
-	}
-
-	if localVarHTTPResponse.StatusCode >= 300 {
-		newErr := GenericOpenAPIError{
-			body:  localVarBody,
-			error: localVarHTTPResponse.Status,
-		}
-		return localVarReturnValue, localVarHTTPResponse, newErr
-	}
-
-	err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
-	if err != nil {
-		newErr := GenericOpenAPIError{
-			body:  localVarBody,
-			error: err.Error(),
-		}
-		return localVarReturnValue, localVarHTTPResponse, newErr
-	}
-
-	return localVarReturnValue, localVarHTTPResponse, nil
-}
diff --git a/internal/httpclient/docs/Identity.md b/internal/httpclient/docs/Identity.md
index e06d46838..4b2c5bbcb 100644
--- a/internal/httpclient/docs/Identity.md
+++ b/internal/httpclient/docs/Identity.md
@@ -5,6 +5,7 @@
 Name | Type | Description | Notes
 ------------ | ------------- | ------------- | -------------
 **CreatedAt** | Pointer to **time.Time** | CreatedAt is a helper struct field for gobuffalo.pop. | [optional] 
+**Credentials** | Pointer to [**map[string]IdentityCredentials**](IdentityCredentials.md) | Credentials represents all credentials that can be used for authenticating this identity. | [optional] 
 **Id** | **string** |  | 
 **RecoveryAddresses** | Pointer to [**[]RecoveryAddress**](RecoveryAddress.md) | RecoveryAddresses contains all the addresses that can be used to recover an identity. | [optional] 
 **SchemaId** | **string** | SchemaID is the ID of the JSON Schema to be used for validating the identity&#39;s traits. | 
@@ -57,6 +58,31 @@ SetCreatedAt sets CreatedAt field to given value.
 
 HasCreatedAt returns a boolean if a field has been set.
 
+### GetCredentials
+
+`func (o *Identity) GetCredentials() map[string]IdentityCredentials`
+
+GetCredentials returns the Credentials field if non-nil, zero value otherwise.
+
+### GetCredentialsOk
+
+`func (o *Identity) GetCredentialsOk() (*map[string]IdentityCredentials, bool)`
+
+GetCredentialsOk returns a tuple with the Credentials field if it's non-nil, zero value otherwise
+and a boolean to check if the value has been set.
+
+### SetCredentials
+
+`func (o *Identity) SetCredentials(v map[string]IdentityCredentials)`
+
+SetCredentials sets Credentials field to given value.
+
+### HasCredentials
+
+`func (o *Identity) HasCredentials() bool`
+
+HasCredentials returns a boolean if a field has been set.
+
 ### GetId
 
 `func (o *Identity) GetId() string`
diff --git a/internal/httpclient/model_complete_self_service_browser_settings_oidc_flow_payload.go b/internal/httpclient/model_complete_self_service_browser_settings_oidc_flow_payload.go
deleted file mode 100644
index 353b3c796..000000000
--- a/internal/httpclient/model_complete_self_service_browser_settings_oidc_flow_payload.go
+++ /dev/null
@@ -1,189 +0,0 @@
-/*
- * Ory Kratos API
- *
- * Documentation for all public and administrative Ory Kratos APIs. Public and administrative APIs are exposed on different ports. Public APIs can face the public internet without any protection while administrative APIs should never be exposed without prior authorization. To protect the administative API port you should use something like Nginx, Ory Oathkeeper, or any other technology capable of authorizing incoming requests.
- *
- * API version: 1.0.0
- * Contact: hi@ory.sh
- */
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package kratos
-
-import (
-	"encoding/json"
-)
-
-// CompleteSelfServiceBrowserSettingsOIDCFlowPayload struct for CompleteSelfServiceBrowserSettingsOIDCFlowPayload
-type CompleteSelfServiceBrowserSettingsOIDCFlowPayload struct {
-	// Flow ID is the flow's ID.  in: query
-	Flow *string `json:"flow,omitempty"`
-	// Link this provider  Either this or `unlink` must be set.  type: string in: body
-	Link *string `json:"link,omitempty"`
-	// Unlink this provider  Either this or `link` must be set.  type: string in: body
-	Unlink *string `json:"unlink,omitempty"`
-}
-
-// NewCompleteSelfServiceBrowserSettingsOIDCFlowPayload instantiates a new CompleteSelfServiceBrowserSettingsOIDCFlowPayload object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewCompleteSelfServiceBrowserSettingsOIDCFlowPayload() *CompleteSelfServiceBrowserSettingsOIDCFlowPayload {
-	this := CompleteSelfServiceBrowserSettingsOIDCFlowPayload{}
-	return &this
-}
-
-// NewCompleteSelfServiceBrowserSettingsOIDCFlowPayloadWithDefaults instantiates a new CompleteSelfServiceBrowserSettingsOIDCFlowPayload object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewCompleteSelfServiceBrowserSettingsOIDCFlowPayloadWithDefaults() *CompleteSelfServiceBrowserSettingsOIDCFlowPayload {
-	this := CompleteSelfServiceBrowserSettingsOIDCFlowPayload{}
-	return &this
-}
-
-// GetFlow returns the Flow field value if set, zero value otherwise.
-func (o *CompleteSelfServiceBrowserSettingsOIDCFlowPayload) GetFlow() string {
-	if o == nil || o.Flow == nil {
-		var ret string
-		return ret
-	}
-	return *o.Flow
-}
-
-// GetFlowOk returns a tuple with the Flow field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-func (o *CompleteSelfServiceBrowserSettingsOIDCFlowPayload) GetFlowOk() (*string, bool) {
-	if o == nil || o.Flow == nil {
-		return nil, false
-	}
-	return o.Flow, true
-}
-
-// HasFlow returns a boolean if a field has been set.
-func (o *CompleteSelfServiceBrowserSettingsOIDCFlowPayload) HasFlow() bool {
-	if o != nil && o.Flow != nil {
-		return true
-	}
-
-	return false
-}
-
-// SetFlow gets a reference to the given string and assigns it to the Flow field.
-func (o *CompleteSelfServiceBrowserSettingsOIDCFlowPayload) SetFlow(v string) {
-	o.Flow = &v
-}
-
-// GetLink returns the Link field value if set, zero value otherwise.
-func (o *CompleteSelfServiceBrowserSettingsOIDCFlowPayload) GetLink() string {
-	if o == nil || o.Link == nil {
-		var ret string
-		return ret
-	}
-	return *o.Link
-}
-
-// GetLinkOk returns a tuple with the Link field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-func (o *CompleteSelfServiceBrowserSettingsOIDCFlowPayload) GetLinkOk() (*string, bool) {
-	if o == nil || o.Link == nil {
-		return nil, false
-	}
-	return o.Link, true
-}
-
-// HasLink returns a boolean if a field has been set.
-func (o *CompleteSelfServiceBrowserSettingsOIDCFlowPayload) HasLink() bool {
-	if o != nil && o.Link != nil {
-		return true
-	}
-
-	return false
-}
-
-// SetLink gets a reference to the given string and assigns it to the Link field.
-func (o *CompleteSelfServiceBrowserSettingsOIDCFlowPayload) SetLink(v string) {
-	o.Link = &v
-}
-
-// GetUnlink returns the Unlink field value if set, zero value otherwise.
-func (o *CompleteSelfServiceBrowserSettingsOIDCFlowPayload) GetUnlink() string {
-	if o == nil || o.Unlink == nil {
-		var ret string
-		return ret
-	}
-	return *o.Unlink
-}
-
-// GetUnlinkOk returns a tuple with the Unlink field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-func (o *CompleteSelfServiceBrowserSettingsOIDCFlowPayload) GetUnlinkOk() (*string, bool) {
-	if o == nil || o.Unlink == nil {
-		return nil, false
-	}
-	return o.Unlink, true
-}
-
-// HasUnlink returns a boolean if a field has been set.
-func (o *CompleteSelfServiceBrowserSettingsOIDCFlowPayload) HasUnlink() bool {
-	if o != nil && o.Unlink != nil {
-		return true
-	}
-
-	return false
-}
-
-// SetUnlink gets a reference to the given string and assigns it to the Unlink field.
-func (o *CompleteSelfServiceBrowserSettingsOIDCFlowPayload) SetUnlink(v string) {
-	o.Unlink = &v
-}
-
-func (o CompleteSelfServiceBrowserSettingsOIDCFlowPayload) MarshalJSON() ([]byte, error) {
-	toSerialize := map[string]interface{}{}
-	if o.Flow != nil {
-		toSerialize["flow"] = o.Flow
-	}
-	if o.Link != nil {
-		toSerialize["link"] = o.Link
-	}
-	if o.Unlink != nil {
-		toSerialize["unlink"] = o.Unlink
-	}
-	return json.Marshal(toSerialize)
-}
-
-type NullableCompleteSelfServiceBrowserSettingsOIDCFlowPayload struct {
-	value *CompleteSelfServiceBrowserSettingsOIDCFlowPayload
-	isSet bool
-}
-
-func (v NullableCompleteSelfServiceBrowserSettingsOIDCFlowPayload) Get() *CompleteSelfServiceBrowserSettingsOIDCFlowPayload {
-	return v.value
-}
-
-func (v *NullableCompleteSelfServiceBrowserSettingsOIDCFlowPayload) Set(val *CompleteSelfServiceBrowserSettingsOIDCFlowPayload) {
-	v.value = val
-	v.isSet = true
-}
-
-func (v NullableCompleteSelfServiceBrowserSettingsOIDCFlowPayload) IsSet() bool {
-	return v.isSet
-}
-
-func (v *NullableCompleteSelfServiceBrowserSettingsOIDCFlowPayload) Unset() {
-	v.value = nil
-	v.isSet = false
-}
-
-func NewNullableCompleteSelfServiceBrowserSettingsOIDCFlowPayload(val *CompleteSelfServiceBrowserSettingsOIDCFlowPayload) *NullableCompleteSelfServiceBrowserSettingsOIDCFlowPayload {
-	return &NullableCompleteSelfServiceBrowserSettingsOIDCFlowPayload{value: val, isSet: true}
-}
-
-func (v NullableCompleteSelfServiceBrowserSettingsOIDCFlowPayload) MarshalJSON() ([]byte, error) {
-	return json.Marshal(v.value)
-}
-
-func (v *NullableCompleteSelfServiceBrowserSettingsOIDCFlowPayload) UnmarshalJSON(src []byte) error {
-	v.isSet = true
-	return json.Unmarshal(src, &v.value)
-}
diff --git a/internal/httpclient/model_complete_self_service_browser_settings_profile_strategy_flow.go b/internal/httpclient/model_complete_self_service_browser_settings_profile_strategy_flow.go
deleted file mode 100644
index 702c36407..000000000
--- a/internal/httpclient/model_complete_self_service_browser_settings_profile_strategy_flow.go
+++ /dev/null
@@ -1,182 +0,0 @@
-/*
- * Ory Kratos API
- *
- * Documentation for all public and administrative Ory Kratos APIs. Public and administrative APIs are exposed on different ports. Public APIs can face the public internet without any protection while administrative APIs should never be exposed without prior authorization. To protect the administative API port you should use something like Nginx, Ory Oathkeeper, or any other technology capable of authorizing incoming requests.
- *
- * API version: 1.0.0
- * Contact: hi@ory.sh
- */
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package kratos
-
-import (
-	"encoding/json"
-)
-
-// CompleteSelfServiceBrowserSettingsProfileStrategyFlow nolint:deadcode,unused
-type CompleteSelfServiceBrowserSettingsProfileStrategyFlow struct {
-	// The Anti-CSRF Token  This token is only required when performing browser flows.
-	CsrfToken *string `json:"csrf_token,omitempty"`
-	// Method  Should be set to profile when trying to update a profile.  type: string
-	Method *string `json:"method,omitempty"`
-	// Traits contains all of the identity's traits.
-	Traits map[string]interface{} `json:"traits"`
-}
-
-// NewCompleteSelfServiceBrowserSettingsProfileStrategyFlow instantiates a new CompleteSelfServiceBrowserSettingsProfileStrategyFlow object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewCompleteSelfServiceBrowserSettingsProfileStrategyFlow(traits map[string]interface{}) *CompleteSelfServiceBrowserSettingsProfileStrategyFlow {
-	this := CompleteSelfServiceBrowserSettingsProfileStrategyFlow{}
-	this.Traits = traits
-	return &this
-}
-
-// NewCompleteSelfServiceBrowserSettingsProfileStrategyFlowWithDefaults instantiates a new CompleteSelfServiceBrowserSettingsProfileStrategyFlow object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewCompleteSelfServiceBrowserSettingsProfileStrategyFlowWithDefaults() *CompleteSelfServiceBrowserSettingsProfileStrategyFlow {
-	this := CompleteSelfServiceBrowserSettingsProfileStrategyFlow{}
-	return &this
-}
-
-// GetCsrfToken returns the CsrfToken field value if set, zero value otherwise.
-func (o *CompleteSelfServiceBrowserSettingsProfileStrategyFlow) GetCsrfToken() string {
-	if o == nil || o.CsrfToken == nil {
-		var ret string
-		return ret
-	}
-	return *o.CsrfToken
-}
-
-// GetCsrfTokenOk returns a tuple with the CsrfToken field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-func (o *CompleteSelfServiceBrowserSettingsProfileStrategyFlow) GetCsrfTokenOk() (*string, bool) {
-	if o == nil || o.CsrfToken == nil {
-		return nil, false
-	}
-	return o.CsrfToken, true
-}
-
-// HasCsrfToken returns a boolean if a field has been set.
-func (o *CompleteSelfServiceBrowserSettingsProfileStrategyFlow) HasCsrfToken() bool {
-	if o != nil && o.CsrfToken != nil {
-		return true
-	}
-
-	return false
-}
-
-// SetCsrfToken gets a reference to the given string and assigns it to the CsrfToken field.
-func (o *CompleteSelfServiceBrowserSettingsProfileStrategyFlow) SetCsrfToken(v string) {
-	o.CsrfToken = &v
-}
-
-// GetMethod returns the Method field value if set, zero value otherwise.
-func (o *CompleteSelfServiceBrowserSettingsProfileStrategyFlow) GetMethod() string {
-	if o == nil || o.Method == nil {
-		var ret string
-		return ret
-	}
-	return *o.Method
-}
-
-// GetMethodOk returns a tuple with the Method field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-func (o *CompleteSelfServiceBrowserSettingsProfileStrategyFlow) GetMethodOk() (*string, bool) {
-	if o == nil || o.Method == nil {
-		return nil, false
-	}
-	return o.Method, true
-}
-
-// HasMethod returns a boolean if a field has been set.
-func (o *CompleteSelfServiceBrowserSettingsProfileStrategyFlow) HasMethod() bool {
-	if o != nil && o.Method != nil {
-		return true
-	}
-
-	return false
-}
-
-// SetMethod gets a reference to the given string and assigns it to the Method field.
-func (o *CompleteSelfServiceBrowserSettingsProfileStrategyFlow) SetMethod(v string) {
-	o.Method = &v
-}
-
-// GetTraits returns the Traits field value
-func (o *CompleteSelfServiceBrowserSettingsProfileStrategyFlow) GetTraits() map[string]interface{} {
-	if o == nil {
-		var ret map[string]interface{}
-		return ret
-	}
-
-	return o.Traits
-}
-
-// GetTraitsOk returns a tuple with the Traits field value
-// and a boolean to check if the value has been set.
-func (o *CompleteSelfServiceBrowserSettingsProfileStrategyFlow) GetTraitsOk() (map[string]interface{}, bool) {
-	if o == nil {
-		return nil, false
-	}
-	return o.Traits, true
-}
-
-// SetTraits sets field value
-func (o *CompleteSelfServiceBrowserSettingsProfileStrategyFlow) SetTraits(v map[string]interface{}) {
-	o.Traits = v
-}
-
-func (o CompleteSelfServiceBrowserSettingsProfileStrategyFlow) MarshalJSON() ([]byte, error) {
-	toSerialize := map[string]interface{}{}
-	if o.CsrfToken != nil {
-		toSerialize["csrf_token"] = o.CsrfToken
-	}
-	if o.Method != nil {
-		toSerialize["method"] = o.Method
-	}
-	if true {
-		toSerialize["traits"] = o.Traits
-	}
-	return json.Marshal(toSerialize)
-}
-
-type NullableCompleteSelfServiceBrowserSettingsProfileStrategyFlow struct {
-	value *CompleteSelfServiceBrowserSettingsProfileStrategyFlow
-	isSet bool
-}
-
-func (v NullableCompleteSelfServiceBrowserSettingsProfileStrategyFlow) Get() *CompleteSelfServiceBrowserSettingsProfileStrategyFlow {
-	return v.value
-}
-
-func (v *NullableCompleteSelfServiceBrowserSettingsProfileStrategyFlow) Set(val *CompleteSelfServiceBrowserSettingsProfileStrategyFlow) {
-	v.value = val
-	v.isSet = true
-}
-
-func (v NullableCompleteSelfServiceBrowserSettingsProfileStrategyFlow) IsSet() bool {
-	return v.isSet
-}
-
-func (v *NullableCompleteSelfServiceBrowserSettingsProfileStrategyFlow) Unset() {
-	v.value = nil
-	v.isSet = false
-}
-
-func NewNullableCompleteSelfServiceBrowserSettingsProfileStrategyFlow(val *CompleteSelfServiceBrowserSettingsProfileStrategyFlow) *NullableCompleteSelfServiceBrowserSettingsProfileStrategyFlow {
-	return &NullableCompleteSelfServiceBrowserSettingsProfileStrategyFlow{value: val, isSet: true}
-}
-
-func (v NullableCompleteSelfServiceBrowserSettingsProfileStrategyFlow) MarshalJSON() ([]byte, error) {
-	return json.Marshal(v.value)
-}
-
-func (v *NullableCompleteSelfServiceBrowserSettingsProfileStrategyFlow) UnmarshalJSON(src []byte) error {
-	v.isSet = true
-	return json.Unmarshal(src, &v.value)
-}
diff --git a/internal/httpclient/model_complete_self_service_login_flow_with_password_method.go b/internal/httpclient/model_complete_self_service_login_flow_with_password_method.go
deleted file mode 100644
index aeeb7cd13..000000000
--- a/internal/httpclient/model_complete_self_service_login_flow_with_password_method.go
+++ /dev/null
@@ -1,226 +0,0 @@
-/*
- * Ory Kratos API
- *
- * Documentation for all public and administrative Ory Kratos APIs. Public and administrative APIs are exposed on different ports. Public APIs can face the public internet without any protection while administrative APIs should never be exposed without prior authorization. To protect the administative API port you should use something like Nginx, Ory Oathkeeper, or any other technology capable of authorizing incoming requests.
- *
- * API version: 1.0.0
- * Contact: hi@ory.sh
- */
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package kratos
-
-import (
-	"encoding/json"
-)
-
-// CompleteSelfServiceLoginFlowWithPasswordMethod struct for CompleteSelfServiceLoginFlowWithPasswordMethod
-type CompleteSelfServiceLoginFlowWithPasswordMethod struct {
-	// Sending the anti-csrf token is only required for browser login flows.
-	CsrfToken *string `json:"csrf_token,omitempty"`
-	// Method should be set to \"password\" when logging in using the identifier and password strategy.
-	Method *string `json:"method,omitempty"`
-	// The user's password.
-	Password *string `json:"password,omitempty"`
-	// Identifier is the email or username of the user trying to log in.
-	PasswordIdentifier *string `json:"password_identifier,omitempty"`
-}
-
-// NewCompleteSelfServiceLoginFlowWithPasswordMethod instantiates a new CompleteSelfServiceLoginFlowWithPasswordMethod object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewCompleteSelfServiceLoginFlowWithPasswordMethod() *CompleteSelfServiceLoginFlowWithPasswordMethod {
-	this := CompleteSelfServiceLoginFlowWithPasswordMethod{}
-	return &this
-}
-
-// NewCompleteSelfServiceLoginFlowWithPasswordMethodWithDefaults instantiates a new CompleteSelfServiceLoginFlowWithPasswordMethod object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewCompleteSelfServiceLoginFlowWithPasswordMethodWithDefaults() *CompleteSelfServiceLoginFlowWithPasswordMethod {
-	this := CompleteSelfServiceLoginFlowWithPasswordMethod{}
-	return &this
-}
-
-// GetCsrfToken returns the CsrfToken field value if set, zero value otherwise.
-func (o *CompleteSelfServiceLoginFlowWithPasswordMethod) GetCsrfToken() string {
-	if o == nil || o.CsrfToken == nil {
-		var ret string
-		return ret
-	}
-	return *o.CsrfToken
-}
-
-// GetCsrfTokenOk returns a tuple with the CsrfToken field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-func (o *CompleteSelfServiceLoginFlowWithPasswordMethod) GetCsrfTokenOk() (*string, bool) {
-	if o == nil || o.CsrfToken == nil {
-		return nil, false
-	}
-	return o.CsrfToken, true
-}
-
-// HasCsrfToken returns a boolean if a field has been set.
-func (o *CompleteSelfServiceLoginFlowWithPasswordMethod) HasCsrfToken() bool {
-	if o != nil && o.CsrfToken != nil {
-		return true
-	}
-
-	return false
-}
-
-// SetCsrfToken gets a reference to the given string and assigns it to the CsrfToken field.
-func (o *CompleteSelfServiceLoginFlowWithPasswordMethod) SetCsrfToken(v string) {
-	o.CsrfToken = &v
-}
-
-// GetMethod returns the Method field value if set, zero value otherwise.
-func (o *CompleteSelfServiceLoginFlowWithPasswordMethod) GetMethod() string {
-	if o == nil || o.Method == nil {
-		var ret string
-		return ret
-	}
-	return *o.Method
-}
-
-// GetMethodOk returns a tuple with the Method field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-func (o *CompleteSelfServiceLoginFlowWithPasswordMethod) GetMethodOk() (*string, bool) {
-	if o == nil || o.Method == nil {
-		return nil, false
-	}
-	return o.Method, true
-}
-
-// HasMethod returns a boolean if a field has been set.
-func (o *CompleteSelfServiceLoginFlowWithPasswordMethod) HasMethod() bool {
-	if o != nil && o.Method != nil {
-		return true
-	}
-
-	return false
-}
-
-// SetMethod gets a reference to the given string and assigns it to the Method field.
-func (o *CompleteSelfServiceLoginFlowWithPasswordMethod) SetMethod(v string) {
-	o.Method = &v
-}
-
-// GetPassword returns the Password field value if set, zero value otherwise.
-func (o *CompleteSelfServiceLoginFlowWithPasswordMethod) GetPassword() string {
-	if o == nil || o.Password == nil {
-		var ret string
-		return ret
-	}
-	return *o.Password
-}
-
-// GetPasswordOk returns a tuple with the Password field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-func (o *CompleteSelfServiceLoginFlowWithPasswordMethod) GetPasswordOk() (*string, bool) {
-	if o == nil || o.Password == nil {
-		return nil, false
-	}
-	return o.Password, true
-}
-
-// HasPassword returns a boolean if a field has been set.
-func (o *CompleteSelfServiceLoginFlowWithPasswordMethod) HasPassword() bool {
-	if o != nil && o.Password != nil {
-		return true
-	}
-
-	return false
-}
-
-// SetPassword gets a reference to the given string and assigns it to the Password field.
-func (o *CompleteSelfServiceLoginFlowWithPasswordMethod) SetPassword(v string) {
-	o.Password = &v
-}
-
-// GetPasswordIdentifier returns the PasswordIdentifier field value if set, zero value otherwise.
-func (o *CompleteSelfServiceLoginFlowWithPasswordMethod) GetPasswordIdentifier() string {
-	if o == nil || o.PasswordIdentifier == nil {
-		var ret string
-		return ret
-	}
-	return *o.PasswordIdentifier
-}
-
-// GetPasswordIdentifierOk returns a tuple with the PasswordIdentifier field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-func (o *CompleteSelfServiceLoginFlowWithPasswordMethod) GetPasswordIdentifierOk() (*string, bool) {
-	if o == nil || o.PasswordIdentifier == nil {
-		return nil, false
-	}
-	return o.PasswordIdentifier, true
-}
-
-// HasPasswordIdentifier returns a boolean if a field has been set.
-func (o *CompleteSelfServiceLoginFlowWithPasswordMethod) HasPasswordIdentifier() bool {
-	if o != nil && o.PasswordIdentifier != nil {
-		return true
-	}
-
-	return false
-}
-
-// SetPasswordIdentifier gets a reference to the given string and assigns it to the PasswordIdentifier field.
-func (o *CompleteSelfServiceLoginFlowWithPasswordMethod) SetPasswordIdentifier(v string) {
-	o.PasswordIdentifier = &v
-}
-
-func (o CompleteSelfServiceLoginFlowWithPasswordMethod) MarshalJSON() ([]byte, error) {
-	toSerialize := map[string]interface{}{}
-	if o.CsrfToken != nil {
-		toSerialize["csrf_token"] = o.CsrfToken
-	}
-	if o.Method != nil {
-		toSerialize["method"] = o.Method
-	}
-	if o.Password != nil {
-		toSerialize["password"] = o.Password
-	}
-	if o.PasswordIdentifier != nil {
-		toSerialize["password_identifier"] = o.PasswordIdentifier
-	}
-	return json.Marshal(toSerialize)
-}
-
-type NullableCompleteSelfServiceLoginFlowWithPasswordMethod struct {
-	value *CompleteSelfServiceLoginFlowWithPasswordMethod
-	isSet bool
-}
-
-func (v NullableCompleteSelfServiceLoginFlowWithPasswordMethod) Get() *CompleteSelfServiceLoginFlowWithPasswordMethod {
-	return v.value
-}
-
-func (v *NullableCompleteSelfServiceLoginFlowWithPasswordMethod) Set(val *CompleteSelfServiceLoginFlowWithPasswordMethod) {
-	v.value = val
-	v.isSet = true
-}
-
-func (v NullableCompleteSelfServiceLoginFlowWithPasswordMethod) IsSet() bool {
-	return v.isSet
-}
-
-func (v *NullableCompleteSelfServiceLoginFlowWithPasswordMethod) Unset() {
-	v.value = nil
-	v.isSet = false
-}
-
-func NewNullableCompleteSelfServiceLoginFlowWithPasswordMethod(val *CompleteSelfServiceLoginFlowWithPasswordMethod) *NullableCompleteSelfServiceLoginFlowWithPasswordMethod {
-	return &NullableCompleteSelfServiceLoginFlowWithPasswordMethod{value: val, isSet: true}
-}
-
-func (v NullableCompleteSelfServiceLoginFlowWithPasswordMethod) MarshalJSON() ([]byte, error) {
-	return json.Marshal(v.value)
-}
-
-func (v *NullableCompleteSelfServiceLoginFlowWithPasswordMethod) UnmarshalJSON(src []byte) error {
-	v.isSet = true
-	return json.Unmarshal(src, &v.value)
-}
diff --git a/internal/httpclient/model_complete_self_service_login_flow_with_password_method_payload.go b/internal/httpclient/model_complete_self_service_login_flow_with_password_method_payload.go
deleted file mode 100644
index d641bfbc9..000000000
--- a/internal/httpclient/model_complete_self_service_login_flow_with_password_method_payload.go
+++ /dev/null
@@ -1,152 +0,0 @@
-/*
- * Ory Kratos API
- *
- * Documentation for all public and administrative Ory Kratos APIs. Public and administrative APIs are exposed on different ports. Public APIs can face the public internet without any protection while administrative APIs should never be exposed without prior authorization. To protect the administative API port you should use something like Nginx, Ory Oathkeeper, or any other technology capable of authorizing incoming requests.
- *
- * API version: 1.0.0
- * Contact: hi@ory.sh
- */
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package kratos
-
-import (
-	"encoding/json"
-)
-
-// CompleteSelfServiceLoginFlowWithPasswordMethodPayload struct for CompleteSelfServiceLoginFlowWithPasswordMethodPayload
-type CompleteSelfServiceLoginFlowWithPasswordMethodPayload struct {
-	// Identifier is the email or username of the user trying to log in.
-	Identifier *string `json:"identifier,omitempty"`
-	// The user's password.
-	Password *string `json:"password,omitempty"`
-}
-
-// NewCompleteSelfServiceLoginFlowWithPasswordMethodPayload instantiates a new CompleteSelfServiceLoginFlowWithPasswordMethodPayload object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewCompleteSelfServiceLoginFlowWithPasswordMethodPayload() *CompleteSelfServiceLoginFlowWithPasswordMethodPayload {
-	this := CompleteSelfServiceLoginFlowWithPasswordMethodPayload{}
-	return &this
-}
-
-// NewCompleteSelfServiceLoginFlowWithPasswordMethodPayloadWithDefaults instantiates a new CompleteSelfServiceLoginFlowWithPasswordMethodPayload object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewCompleteSelfServiceLoginFlowWithPasswordMethodPayloadWithDefaults() *CompleteSelfServiceLoginFlowWithPasswordMethodPayload {
-	this := CompleteSelfServiceLoginFlowWithPasswordMethodPayload{}
-	return &this
-}
-
-// GetIdentifier returns the Identifier field value if set, zero value otherwise.
-func (o *CompleteSelfServiceLoginFlowWithPasswordMethodPayload) GetIdentifier() string {
-	if o == nil || o.Identifier == nil {
-		var ret string
-		return ret
-	}
-	return *o.Identifier
-}
-
-// GetIdentifierOk returns a tuple with the Identifier field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-func (o *CompleteSelfServiceLoginFlowWithPasswordMethodPayload) GetIdentifierOk() (*string, bool) {
-	if o == nil || o.Identifier == nil {
-		return nil, false
-	}
-	return o.Identifier, true
-}
-
-// HasIdentifier returns a boolean if a field has been set.
-func (o *CompleteSelfServiceLoginFlowWithPasswordMethodPayload) HasIdentifier() bool {
-	if o != nil && o.Identifier != nil {
-		return true
-	}
-
-	return false
-}
-
-// SetIdentifier gets a reference to the given string and assigns it to the Identifier field.
-func (o *CompleteSelfServiceLoginFlowWithPasswordMethodPayload) SetIdentifier(v string) {
-	o.Identifier = &v
-}
-
-// GetPassword returns the Password field value if set, zero value otherwise.
-func (o *CompleteSelfServiceLoginFlowWithPasswordMethodPayload) GetPassword() string {
-	if o == nil || o.Password == nil {
-		var ret string
-		return ret
-	}
-	return *o.Password
-}
-
-// GetPasswordOk returns a tuple with the Password field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-func (o *CompleteSelfServiceLoginFlowWithPasswordMethodPayload) GetPasswordOk() (*string, bool) {
-	if o == nil || o.Password == nil {
-		return nil, false
-	}
-	return o.Password, true
-}
-
-// HasPassword returns a boolean if a field has been set.
-func (o *CompleteSelfServiceLoginFlowWithPasswordMethodPayload) HasPassword() bool {
-	if o != nil && o.Password != nil {
-		return true
-	}
-
-	return false
-}
-
-// SetPassword gets a reference to the given string and assigns it to the Password field.
-func (o *CompleteSelfServiceLoginFlowWithPasswordMethodPayload) SetPassword(v string) {
-	o.Password = &v
-}
-
-func (o CompleteSelfServiceLoginFlowWithPasswordMethodPayload) MarshalJSON() ([]byte, error) {
-	toSerialize := map[string]interface{}{}
-	if o.Identifier != nil {
-		toSerialize["identifier"] = o.Identifier
-	}
-	if o.Password != nil {
-		toSerialize["password"] = o.Password
-	}
-	return json.Marshal(toSerialize)
-}
-
-type NullableCompleteSelfServiceLoginFlowWithPasswordMethodPayload struct {
-	value *CompleteSelfServiceLoginFlowWithPasswordMethodPayload
-	isSet bool
-}
-
-func (v NullableCompleteSelfServiceLoginFlowWithPasswordMethodPayload) Get() *CompleteSelfServiceLoginFlowWithPasswordMethodPayload {
-	return v.value
-}
-
-func (v *NullableCompleteSelfServiceLoginFlowWithPasswordMethodPayload) Set(val *CompleteSelfServiceLoginFlowWithPasswordMethodPayload) {
-	v.value = val
-	v.isSet = true
-}
-
-func (v NullableCompleteSelfServiceLoginFlowWithPasswordMethodPayload) IsSet() bool {
-	return v.isSet
-}
-
-func (v *NullableCompleteSelfServiceLoginFlowWithPasswordMethodPayload) Unset() {
-	v.value = nil
-	v.isSet = false
-}
-
-func NewNullableCompleteSelfServiceLoginFlowWithPasswordMethodPayload(val *CompleteSelfServiceLoginFlowWithPasswordMethodPayload) *NullableCompleteSelfServiceLoginFlowWithPasswordMethodPayload {
-	return &NullableCompleteSelfServiceLoginFlowWithPasswordMethodPayload{value: val, isSet: true}
-}
-
-func (v NullableCompleteSelfServiceLoginFlowWithPasswordMethodPayload) MarshalJSON() ([]byte, error) {
-	return json.Marshal(v.value)
-}
-
-func (v *NullableCompleteSelfServiceLoginFlowWithPasswordMethodPayload) UnmarshalJSON(src []byte) error {
-	v.isSet = true
-	return json.Unmarshal(src, &v.value)
-}
diff --git a/internal/httpclient/model_complete_self_service_recovery_flow_with_link_method.go b/internal/httpclient/model_complete_self_service_recovery_flow_with_link_method.go
deleted file mode 100644
index 3d0666aca..000000000
--- a/internal/httpclient/model_complete_self_service_recovery_flow_with_link_method.go
+++ /dev/null
@@ -1,152 +0,0 @@
-/*
- * Ory Kratos API
- *
- * Documentation for all public and administrative Ory Kratos APIs. Public and administrative APIs are exposed on different ports. Public APIs can face the public internet without any protection while administrative APIs should never be exposed without prior authorization. To protect the administative API port you should use something like Nginx, Ory Oathkeeper, or any other technology capable of authorizing incoming requests.
- *
- * API version: 1.0.0
- * Contact: hi@ory.sh
- */
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package kratos
-
-import (
-	"encoding/json"
-)
-
-// CompleteSelfServiceRecoveryFlowWithLinkMethod struct for CompleteSelfServiceRecoveryFlowWithLinkMethod
-type CompleteSelfServiceRecoveryFlowWithLinkMethod struct {
-	// Sending the anti-csrf token is only required for browser login flows.
-	CsrfToken *string `json:"csrf_token,omitempty"`
-	// Email to Recover  Needs to be set when initiating the flow. If the email is a registered recovery email, a recovery link will be sent. If the email is not known, a email with details on what happened will be sent instead.  format: email in: body
-	Email *string `json:"email,omitempty"`
-}
-
-// NewCompleteSelfServiceRecoveryFlowWithLinkMethod instantiates a new CompleteSelfServiceRecoveryFlowWithLinkMethod object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewCompleteSelfServiceRecoveryFlowWithLinkMethod() *CompleteSelfServiceRecoveryFlowWithLinkMethod {
-	this := CompleteSelfServiceRecoveryFlowWithLinkMethod{}
-	return &this
-}
-
-// NewCompleteSelfServiceRecoveryFlowWithLinkMethodWithDefaults instantiates a new CompleteSelfServiceRecoveryFlowWithLinkMethod object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewCompleteSelfServiceRecoveryFlowWithLinkMethodWithDefaults() *CompleteSelfServiceRecoveryFlowWithLinkMethod {
-	this := CompleteSelfServiceRecoveryFlowWithLinkMethod{}
-	return &this
-}
-
-// GetCsrfToken returns the CsrfToken field value if set, zero value otherwise.
-func (o *CompleteSelfServiceRecoveryFlowWithLinkMethod) GetCsrfToken() string {
-	if o == nil || o.CsrfToken == nil {
-		var ret string
-		return ret
-	}
-	return *o.CsrfToken
-}
-
-// GetCsrfTokenOk returns a tuple with the CsrfToken field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-func (o *CompleteSelfServiceRecoveryFlowWithLinkMethod) GetCsrfTokenOk() (*string, bool) {
-	if o == nil || o.CsrfToken == nil {
-		return nil, false
-	}
-	return o.CsrfToken, true
-}
-
-// HasCsrfToken returns a boolean if a field has been set.
-func (o *CompleteSelfServiceRecoveryFlowWithLinkMethod) HasCsrfToken() bool {
-	if o != nil && o.CsrfToken != nil {
-		return true
-	}
-
-	return false
-}
-
-// SetCsrfToken gets a reference to the given string and assigns it to the CsrfToken field.
-func (o *CompleteSelfServiceRecoveryFlowWithLinkMethod) SetCsrfToken(v string) {
-	o.CsrfToken = &v
-}
-
-// GetEmail returns the Email field value if set, zero value otherwise.
-func (o *CompleteSelfServiceRecoveryFlowWithLinkMethod) GetEmail() string {
-	if o == nil || o.Email == nil {
-		var ret string
-		return ret
-	}
-	return *o.Email
-}
-
-// GetEmailOk returns a tuple with the Email field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-func (o *CompleteSelfServiceRecoveryFlowWithLinkMethod) GetEmailOk() (*string, bool) {
-	if o == nil || o.Email == nil {
-		return nil, false
-	}
-	return o.Email, true
-}
-
-// HasEmail returns a boolean if a field has been set.
-func (o *CompleteSelfServiceRecoveryFlowWithLinkMethod) HasEmail() bool {
-	if o != nil && o.Email != nil {
-		return true
-	}
-
-	return false
-}
-
-// SetEmail gets a reference to the given string and assigns it to the Email field.
-func (o *CompleteSelfServiceRecoveryFlowWithLinkMethod) SetEmail(v string) {
-	o.Email = &v
-}
-
-func (o CompleteSelfServiceRecoveryFlowWithLinkMethod) MarshalJSON() ([]byte, error) {
-	toSerialize := map[string]interface{}{}
-	if o.CsrfToken != nil {
-		toSerialize["csrf_token"] = o.CsrfToken
-	}
-	if o.Email != nil {
-		toSerialize["email"] = o.Email
-	}
-	return json.Marshal(toSerialize)
-}
-
-type NullableCompleteSelfServiceRecoveryFlowWithLinkMethod struct {
-	value *CompleteSelfServiceRecoveryFlowWithLinkMethod
-	isSet bool
-}
-
-func (v NullableCompleteSelfServiceRecoveryFlowWithLinkMethod) Get() *CompleteSelfServiceRecoveryFlowWithLinkMethod {
-	return v.value
-}
-
-func (v *NullableCompleteSelfServiceRecoveryFlowWithLinkMethod) Set(val *CompleteSelfServiceRecoveryFlowWithLinkMethod) {
-	v.value = val
-	v.isSet = true
-}
-
-func (v NullableCompleteSelfServiceRecoveryFlowWithLinkMethod) IsSet() bool {
-	return v.isSet
-}
-
-func (v *NullableCompleteSelfServiceRecoveryFlowWithLinkMethod) Unset() {
-	v.value = nil
-	v.isSet = false
-}
-
-func NewNullableCompleteSelfServiceRecoveryFlowWithLinkMethod(val *CompleteSelfServiceRecoveryFlowWithLinkMethod) *NullableCompleteSelfServiceRecoveryFlowWithLinkMethod {
-	return &NullableCompleteSelfServiceRecoveryFlowWithLinkMethod{value: val, isSet: true}
-}
-
-func (v NullableCompleteSelfServiceRecoveryFlowWithLinkMethod) MarshalJSON() ([]byte, error) {
-	return json.Marshal(v.value)
-}
-
-func (v *NullableCompleteSelfServiceRecoveryFlowWithLinkMethod) UnmarshalJSON(src []byte) error {
-	v.isSet = true
-	return json.Unmarshal(src, &v.value)
-}
diff --git a/internal/httpclient/model_complete_self_service_settings_flow_with_password_method.go b/internal/httpclient/model_complete_self_service_settings_flow_with_password_method.go
deleted file mode 100644
index efa1381bb..000000000
--- a/internal/httpclient/model_complete_self_service_settings_flow_with_password_method.go
+++ /dev/null
@@ -1,182 +0,0 @@
-/*
- * Ory Kratos API
- *
- * Documentation for all public and administrative Ory Kratos APIs. Public and administrative APIs are exposed on different ports. Public APIs can face the public internet without any protection while administrative APIs should never be exposed without prior authorization. To protect the administative API port you should use something like Nginx, Ory Oathkeeper, or any other technology capable of authorizing incoming requests.
- *
- * API version: 1.0.0
- * Contact: hi@ory.sh
- */
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package kratos
-
-import (
-	"encoding/json"
-)
-
-// CompleteSelfServiceSettingsFlowWithPasswordMethod struct for CompleteSelfServiceSettingsFlowWithPasswordMethod
-type CompleteSelfServiceSettingsFlowWithPasswordMethod struct {
-	// CSRFToken is the anti-CSRF token  type: string
-	CsrfToken *string `json:"csrf_token,omitempty"`
-	// Method  Should be set to password when trying to update a password.  type: string
-	Method *string `json:"method,omitempty"`
-	// Password is the updated password  type: string
-	Password string `json:"password"`
-}
-
-// NewCompleteSelfServiceSettingsFlowWithPasswordMethod instantiates a new CompleteSelfServiceSettingsFlowWithPasswordMethod object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewCompleteSelfServiceSettingsFlowWithPasswordMethod(password string) *CompleteSelfServiceSettingsFlowWithPasswordMethod {
-	this := CompleteSelfServiceSettingsFlowWithPasswordMethod{}
-	this.Password = password
-	return &this
-}
-
-// NewCompleteSelfServiceSettingsFlowWithPasswordMethodWithDefaults instantiates a new CompleteSelfServiceSettingsFlowWithPasswordMethod object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewCompleteSelfServiceSettingsFlowWithPasswordMethodWithDefaults() *CompleteSelfServiceSettingsFlowWithPasswordMethod {
-	this := CompleteSelfServiceSettingsFlowWithPasswordMethod{}
-	return &this
-}
-
-// GetCsrfToken returns the CsrfToken field value if set, zero value otherwise.
-func (o *CompleteSelfServiceSettingsFlowWithPasswordMethod) GetCsrfToken() string {
-	if o == nil || o.CsrfToken == nil {
-		var ret string
-		return ret
-	}
-	return *o.CsrfToken
-}
-
-// GetCsrfTokenOk returns a tuple with the CsrfToken field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-func (o *CompleteSelfServiceSettingsFlowWithPasswordMethod) GetCsrfTokenOk() (*string, bool) {
-	if o == nil || o.CsrfToken == nil {
-		return nil, false
-	}
-	return o.CsrfToken, true
-}
-
-// HasCsrfToken returns a boolean if a field has been set.
-func (o *CompleteSelfServiceSettingsFlowWithPasswordMethod) HasCsrfToken() bool {
-	if o != nil && o.CsrfToken != nil {
-		return true
-	}
-
-	return false
-}
-
-// SetCsrfToken gets a reference to the given string and assigns it to the CsrfToken field.
-func (o *CompleteSelfServiceSettingsFlowWithPasswordMethod) SetCsrfToken(v string) {
-	o.CsrfToken = &v
-}
-
-// GetMethod returns the Method field value if set, zero value otherwise.
-func (o *CompleteSelfServiceSettingsFlowWithPasswordMethod) GetMethod() string {
-	if o == nil || o.Method == nil {
-		var ret string
-		return ret
-	}
-	return *o.Method
-}
-
-// GetMethodOk returns a tuple with the Method field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-func (o *CompleteSelfServiceSettingsFlowWithPasswordMethod) GetMethodOk() (*string, bool) {
-	if o == nil || o.Method == nil {
-		return nil, false
-	}
-	return o.Method, true
-}
-
-// HasMethod returns a boolean if a field has been set.
-func (o *CompleteSelfServiceSettingsFlowWithPasswordMethod) HasMethod() bool {
-	if o != nil && o.Method != nil {
-		return true
-	}
-
-	return false
-}
-
-// SetMethod gets a reference to the given string and assigns it to the Method field.
-func (o *CompleteSelfServiceSettingsFlowWithPasswordMethod) SetMethod(v string) {
-	o.Method = &v
-}
-
-// GetPassword returns the Password field value
-func (o *CompleteSelfServiceSettingsFlowWithPasswordMethod) GetPassword() string {
-	if o == nil {
-		var ret string
-		return ret
-	}
-
-	return o.Password
-}
-
-// GetPasswordOk returns a tuple with the Password field value
-// and a boolean to check if the value has been set.
-func (o *CompleteSelfServiceSettingsFlowWithPasswordMethod) GetPasswordOk() (*string, bool) {
-	if o == nil {
-		return nil, false
-	}
-	return &o.Password, true
-}
-
-// SetPassword sets field value
-func (o *CompleteSelfServiceSettingsFlowWithPasswordMethod) SetPassword(v string) {
-	o.Password = v
-}
-
-func (o CompleteSelfServiceSettingsFlowWithPasswordMethod) MarshalJSON() ([]byte, error) {
-	toSerialize := map[string]interface{}{}
-	if o.CsrfToken != nil {
-		toSerialize["csrf_token"] = o.CsrfToken
-	}
-	if o.Method != nil {
-		toSerialize["method"] = o.Method
-	}
-	if true {
-		toSerialize["password"] = o.Password
-	}
-	return json.Marshal(toSerialize)
-}
-
-type NullableCompleteSelfServiceSettingsFlowWithPasswordMethod struct {
-	value *CompleteSelfServiceSettingsFlowWithPasswordMethod
-	isSet bool
-}
-
-func (v NullableCompleteSelfServiceSettingsFlowWithPasswordMethod) Get() *CompleteSelfServiceSettingsFlowWithPasswordMethod {
-	return v.value
-}
-
-func (v *NullableCompleteSelfServiceSettingsFlowWithPasswordMethod) Set(val *CompleteSelfServiceSettingsFlowWithPasswordMethod) {
-	v.value = val
-	v.isSet = true
-}
-
-func (v NullableCompleteSelfServiceSettingsFlowWithPasswordMethod) IsSet() bool {
-	return v.isSet
-}
-
-func (v *NullableCompleteSelfServiceSettingsFlowWithPasswordMethod) Unset() {
-	v.value = nil
-	v.isSet = false
-}
-
-func NewNullableCompleteSelfServiceSettingsFlowWithPasswordMethod(val *CompleteSelfServiceSettingsFlowWithPasswordMethod) *NullableCompleteSelfServiceSettingsFlowWithPasswordMethod {
-	return &NullableCompleteSelfServiceSettingsFlowWithPasswordMethod{value: val, isSet: true}
-}
-
-func (v NullableCompleteSelfServiceSettingsFlowWithPasswordMethod) MarshalJSON() ([]byte, error) {
-	return json.Marshal(v.value)
-}
-
-func (v *NullableCompleteSelfServiceSettingsFlowWithPasswordMethod) UnmarshalJSON(src []byte) error {
-	v.isSet = true
-	return json.Unmarshal(src, &v.value)
-}
diff --git a/internal/httpclient/model_complete_self_service_verification_flow_with_link_method.go b/internal/httpclient/model_complete_self_service_verification_flow_with_link_method.go
deleted file mode 100644
index e8b705a28..000000000
--- a/internal/httpclient/model_complete_self_service_verification_flow_with_link_method.go
+++ /dev/null
@@ -1,152 +0,0 @@
-/*
- * Ory Kratos API
- *
- * Documentation for all public and administrative Ory Kratos APIs. Public and administrative APIs are exposed on different ports. Public APIs can face the public internet without any protection while administrative APIs should never be exposed without prior authorization. To protect the administative API port you should use something like Nginx, Ory Oathkeeper, or any other technology capable of authorizing incoming requests.
- *
- * API version: 1.0.0
- * Contact: hi@ory.sh
- */
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package kratos
-
-import (
-	"encoding/json"
-)
-
-// CompleteSelfServiceVerificationFlowWithLinkMethod struct for CompleteSelfServiceVerificationFlowWithLinkMethod
-type CompleteSelfServiceVerificationFlowWithLinkMethod struct {
-	// Sending the anti-csrf token is only required for browser login flows.
-	CsrfToken *string `json:"csrf_token,omitempty"`
-	// Email to Verify  Needs to be set when initiating the flow. If the email is a registered verification email, a verification link will be sent. If the email is not known, a email with details on what happened will be sent instead.  format: email in: body
-	Email *string `json:"email,omitempty"`
-}
-
-// NewCompleteSelfServiceVerificationFlowWithLinkMethod instantiates a new CompleteSelfServiceVerificationFlowWithLinkMethod object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewCompleteSelfServiceVerificationFlowWithLinkMethod() *CompleteSelfServiceVerificationFlowWithLinkMethod {
-	this := CompleteSelfServiceVerificationFlowWithLinkMethod{}
-	return &this
-}
-
-// NewCompleteSelfServiceVerificationFlowWithLinkMethodWithDefaults instantiates a new CompleteSelfServiceVerificationFlowWithLinkMethod object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewCompleteSelfServiceVerificationFlowWithLinkMethodWithDefaults() *CompleteSelfServiceVerificationFlowWithLinkMethod {
-	this := CompleteSelfServiceVerificationFlowWithLinkMethod{}
-	return &this
-}
-
-// GetCsrfToken returns the CsrfToken field value if set, zero value otherwise.
-func (o *CompleteSelfServiceVerificationFlowWithLinkMethod) GetCsrfToken() string {
-	if o == nil || o.CsrfToken == nil {
-		var ret string
-		return ret
-	}
-	return *o.CsrfToken
-}
-
-// GetCsrfTokenOk returns a tuple with the CsrfToken field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-func (o *CompleteSelfServiceVerificationFlowWithLinkMethod) GetCsrfTokenOk() (*string, bool) {
-	if o == nil || o.CsrfToken == nil {
-		return nil, false
-	}
-	return o.CsrfToken, true
-}
-
-// HasCsrfToken returns a boolean if a field has been set.
-func (o *CompleteSelfServiceVerificationFlowWithLinkMethod) HasCsrfToken() bool {
-	if o != nil && o.CsrfToken != nil {
-		return true
-	}
-
-	return false
-}
-
-// SetCsrfToken gets a reference to the given string and assigns it to the CsrfToken field.
-func (o *CompleteSelfServiceVerificationFlowWithLinkMethod) SetCsrfToken(v string) {
-	o.CsrfToken = &v
-}
-
-// GetEmail returns the Email field value if set, zero value otherwise.
-func (o *CompleteSelfServiceVerificationFlowWithLinkMethod) GetEmail() string {
-	if o == nil || o.Email == nil {
-		var ret string
-		return ret
-	}
-	return *o.Email
-}
-
-// GetEmailOk returns a tuple with the Email field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-func (o *CompleteSelfServiceVerificationFlowWithLinkMethod) GetEmailOk() (*string, bool) {
-	if o == nil || o.Email == nil {
-		return nil, false
-	}
-	return o.Email, true
-}
-
-// HasEmail returns a boolean if a field has been set.
-func (o *CompleteSelfServiceVerificationFlowWithLinkMethod) HasEmail() bool {
-	if o != nil && o.Email != nil {
-		return true
-	}
-
-	return false
-}
-
-// SetEmail gets a reference to the given string and assigns it to the Email field.
-func (o *CompleteSelfServiceVerificationFlowWithLinkMethod) SetEmail(v string) {
-	o.Email = &v
-}
-
-func (o CompleteSelfServiceVerificationFlowWithLinkMethod) MarshalJSON() ([]byte, error) {
-	toSerialize := map[string]interface{}{}
-	if o.CsrfToken != nil {
-		toSerialize["csrf_token"] = o.CsrfToken
-	}
-	if o.Email != nil {
-		toSerialize["email"] = o.Email
-	}
-	return json.Marshal(toSerialize)
-}
-
-type NullableCompleteSelfServiceVerificationFlowWithLinkMethod struct {
-	value *CompleteSelfServiceVerificationFlowWithLinkMethod
-	isSet bool
-}
-
-func (v NullableCompleteSelfServiceVerificationFlowWithLinkMethod) Get() *CompleteSelfServiceVerificationFlowWithLinkMethod {
-	return v.value
-}
-
-func (v *NullableCompleteSelfServiceVerificationFlowWithLinkMethod) Set(val *CompleteSelfServiceVerificationFlowWithLinkMethod) {
-	v.value = val
-	v.isSet = true
-}
-
-func (v NullableCompleteSelfServiceVerificationFlowWithLinkMethod) IsSet() bool {
-	return v.isSet
-}
-
-func (v *NullableCompleteSelfServiceVerificationFlowWithLinkMethod) Unset() {
-	v.value = nil
-	v.isSet = false
-}
-
-func NewNullableCompleteSelfServiceVerificationFlowWithLinkMethod(val *CompleteSelfServiceVerificationFlowWithLinkMethod) *NullableCompleteSelfServiceVerificationFlowWithLinkMethod {
-	return &NullableCompleteSelfServiceVerificationFlowWithLinkMethod{value: val, isSet: true}
-}
-
-func (v NullableCompleteSelfServiceVerificationFlowWithLinkMethod) MarshalJSON() ([]byte, error) {
-	return json.Marshal(v.value)
-}
-
-func (v *NullableCompleteSelfServiceVerificationFlowWithLinkMethod) UnmarshalJSON(src []byte) error {
-	v.isSet = true
-	return json.Unmarshal(src, &v.value)
-}
diff --git a/internal/httpclient/model_error_container.go b/internal/httpclient/model_error_container.go
deleted file mode 100644
index e616ce5c5..000000000
--- a/internal/httpclient/model_error_container.go
+++ /dev/null
@@ -1,137 +0,0 @@
-/*
- * Ory Kratos API
- *
- * Documentation for all public and administrative Ory Kratos APIs. Public and administrative APIs are exposed on different ports. Public APIs can face the public internet without any protection while administrative APIs should never be exposed without prior authorization. To protect the administative API port you should use something like Nginx, Ory Oathkeeper, or any other technology capable of authorizing incoming requests.
- *
- * API version: 1.0.0
- * Contact: hi@ory.sh
- */
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package kratos
-
-import (
-	"encoding/json"
-)
-
-// ErrorContainer struct for ErrorContainer
-type ErrorContainer struct {
-	// Errors in the container
-	Errors []map[string]interface{} `json:"errors"`
-	Id     string                   `json:"id"`
-}
-
-// NewErrorContainer instantiates a new ErrorContainer object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewErrorContainer(errors []map[string]interface{}, id string) *ErrorContainer {
-	this := ErrorContainer{}
-	this.Errors = errors
-	this.Id = id
-	return &this
-}
-
-// NewErrorContainerWithDefaults instantiates a new ErrorContainer object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewErrorContainerWithDefaults() *ErrorContainer {
-	this := ErrorContainer{}
-	return &this
-}
-
-// GetErrors returns the Errors field value
-func (o *ErrorContainer) GetErrors() []map[string]interface{} {
-	if o == nil {
-		var ret []map[string]interface{}
-		return ret
-	}
-
-	return o.Errors
-}
-
-// GetErrorsOk returns a tuple with the Errors field value
-// and a boolean to check if the value has been set.
-func (o *ErrorContainer) GetErrorsOk() ([]map[string]interface{}, bool) {
-	if o == nil {
-		return nil, false
-	}
-	return o.Errors, true
-}
-
-// SetErrors sets field value
-func (o *ErrorContainer) SetErrors(v []map[string]interface{}) {
-	o.Errors = v
-}
-
-// GetId returns the Id field value
-func (o *ErrorContainer) GetId() string {
-	if o == nil {
-		var ret string
-		return ret
-	}
-
-	return o.Id
-}
-
-// GetIdOk returns a tuple with the Id field value
-// and a boolean to check if the value has been set.
-func (o *ErrorContainer) GetIdOk() (*string, bool) {
-	if o == nil {
-		return nil, false
-	}
-	return &o.Id, true
-}
-
-// SetId sets field value
-func (o *ErrorContainer) SetId(v string) {
-	o.Id = v
-}
-
-func (o ErrorContainer) MarshalJSON() ([]byte, error) {
-	toSerialize := map[string]interface{}{}
-	if true {
-		toSerialize["errors"] = o.Errors
-	}
-	if true {
-		toSerialize["id"] = o.Id
-	}
-	return json.Marshal(toSerialize)
-}
-
-type NullableErrorContainer struct {
-	value *ErrorContainer
-	isSet bool
-}
-
-func (v NullableErrorContainer) Get() *ErrorContainer {
-	return v.value
-}
-
-func (v *NullableErrorContainer) Set(val *ErrorContainer) {
-	v.value = val
-	v.isSet = true
-}
-
-func (v NullableErrorContainer) IsSet() bool {
-	return v.isSet
-}
-
-func (v *NullableErrorContainer) Unset() {
-	v.value = nil
-	v.isSet = false
-}
-
-func NewNullableErrorContainer(val *ErrorContainer) *NullableErrorContainer {
-	return &NullableErrorContainer{value: val, isSet: true}
-}
-
-func (v NullableErrorContainer) MarshalJSON() ([]byte, error) {
-	return json.Marshal(v.value)
-}
-
-func (v *NullableErrorContainer) UnmarshalJSON(src []byte) error {
-	v.isSet = true
-	return json.Unmarshal(src, &v.value)
-}
diff --git a/internal/httpclient/model_form.go b/internal/httpclient/model_form.go
deleted file mode 100644
index dcd04fd31..000000000
--- a/internal/httpclient/model_form.go
+++ /dev/null
@@ -1,203 +0,0 @@
-/*
- * Ory Kratos API
- *
- * Documentation for all public and administrative Ory Kratos APIs. Public and administrative APIs are exposed on different ports. Public APIs can face the public internet without any protection while administrative APIs should never be exposed without prior authorization. To protect the administative API port you should use something like Nginx, Ory Oathkeeper, or any other technology capable of authorizing incoming requests.
- *
- * API version: 1.0.0
- * Contact: hi@ory.sh
- */
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package kratos
-
-import (
-	"encoding/json"
-)
-
-// Form HTMLForm represents a HTML Form. The container can work with both HTTP Form and JSON requests
-type Form struct {
-	// Action should be used as the form action URL `<form action=\"{{ .Action }}\" method=\"post\">`.
-	Action   string   `json:"action"`
-	Messages []UiText `json:"messages,omitempty"`
-	// Method is the form method (e.g. POST)
-	Method string   `json:"method"`
-	Nodes  []UiNode `json:"nodes"`
-}
-
-// NewForm instantiates a new Form object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewForm(action string, method string, nodes []UiNode) *Form {
-	this := Form{}
-	this.Action = action
-	this.Method = method
-	this.Nodes = nodes
-	return &this
-}
-
-// NewFormWithDefaults instantiates a new Form object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewFormWithDefaults() *Form {
-	this := Form{}
-	return &this
-}
-
-// GetAction returns the Action field value
-func (o *Form) GetAction() string {
-	if o == nil {
-		var ret string
-		return ret
-	}
-
-	return o.Action
-}
-
-// GetActionOk returns a tuple with the Action field value
-// and a boolean to check if the value has been set.
-func (o *Form) GetActionOk() (*string, bool) {
-	if o == nil {
-		return nil, false
-	}
-	return &o.Action, true
-}
-
-// SetAction sets field value
-func (o *Form) SetAction(v string) {
-	o.Action = v
-}
-
-// GetMessages returns the Messages field value if set, zero value otherwise.
-func (o *Form) GetMessages() []UiText {
-	if o == nil || o.Messages == nil {
-		var ret []UiText
-		return ret
-	}
-	return o.Messages
-}
-
-// GetMessagesOk returns a tuple with the Messages field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-func (o *Form) GetMessagesOk() ([]UiText, bool) {
-	if o == nil || o.Messages == nil {
-		return nil, false
-	}
-	return o.Messages, true
-}
-
-// HasMessages returns a boolean if a field has been set.
-func (o *Form) HasMessages() bool {
-	if o != nil && o.Messages != nil {
-		return true
-	}
-
-	return false
-}
-
-// SetMessages gets a reference to the given []UiText and assigns it to the Messages field.
-func (o *Form) SetMessages(v []UiText) {
-	o.Messages = v
-}
-
-// GetMethod returns the Method field value
-func (o *Form) GetMethod() string {
-	if o == nil {
-		var ret string
-		return ret
-	}
-
-	return o.Method
-}
-
-// GetMethodOk returns a tuple with the Method field value
-// and a boolean to check if the value has been set.
-func (o *Form) GetMethodOk() (*string, bool) {
-	if o == nil {
-		return nil, false
-	}
-	return &o.Method, true
-}
-
-// SetMethod sets field value
-func (o *Form) SetMethod(v string) {
-	o.Method = v
-}
-
-// GetNodes returns the Nodes field value
-func (o *Form) GetNodes() []UiNode {
-	if o == nil {
-		var ret []UiNode
-		return ret
-	}
-
-	return o.Nodes
-}
-
-// GetNodesOk returns a tuple with the Nodes field value
-// and a boolean to check if the value has been set.
-func (o *Form) GetNodesOk() ([]UiNode, bool) {
-	if o == nil {
-		return nil, false
-	}
-	return o.Nodes, true
-}
-
-// SetNodes sets field value
-func (o *Form) SetNodes(v []UiNode) {
-	o.Nodes = v
-}
-
-func (o Form) MarshalJSON() ([]byte, error) {
-	toSerialize := map[string]interface{}{}
-	if true {
-		toSerialize["action"] = o.Action
-	}
-	if o.Messages != nil {
-		toSerialize["messages"] = o.Messages
-	}
-	if true {
-		toSerialize["method"] = o.Method
-	}
-	if true {
-		toSerialize["nodes"] = o.Nodes
-	}
-	return json.Marshal(toSerialize)
-}
-
-type NullableForm struct {
-	value *Form
-	isSet bool
-}
-
-func (v NullableForm) Get() *Form {
-	return v.value
-}
-
-func (v *NullableForm) Set(val *Form) {
-	v.value = val
-	v.isSet = true
-}
-
-func (v NullableForm) IsSet() bool {
-	return v.isSet
-}
-
-func (v *NullableForm) Unset() {
-	v.value = nil
-	v.isSet = false
-}
-
-func NewNullableForm(val *Form) *NullableForm {
-	return &NullableForm{value: val, isSet: true}
-}
-
-func (v NullableForm) MarshalJSON() ([]byte, error) {
-	return json.Marshal(v.value)
-}
-
-func (v *NullableForm) UnmarshalJSON(src []byte) error {
-	v.isSet = true
-	return json.Unmarshal(src, &v.value)
-}
diff --git a/internal/httpclient/model_generic_error_payload.go b/internal/httpclient/model_generic_error_payload.go
deleted file mode 100644
index e35099c91..000000000
--- a/internal/httpclient/model_generic_error_payload.go
+++ /dev/null
@@ -1,332 +0,0 @@
-/*
- * Ory Kratos API
- *
- * Documentation for all public and administrative Ory Kratos APIs. Public and administrative APIs are exposed on different ports. Public APIs can face the public internet without any protection while administrative APIs should never be exposed without prior authorization. To protect the administative API port you should use something like Nginx, Ory Oathkeeper, or any other technology capable of authorizing incoming requests.
- *
- * API version: 1.0.0
- * Contact: hi@ory.sh
- */
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package kratos
-
-import (
-	"encoding/json"
-)
-
-// GenericErrorPayload struct for GenericErrorPayload
-type GenericErrorPayload struct {
-	// Code represents the error status code (404, 403, 401, ...).
-	Code *int64 `json:"code,omitempty"`
-	// Debug contains debug information. This is usually not available and has to be enabled.
-	Debug   *string                           `json:"debug,omitempty"`
-	Details map[string]map[string]interface{} `json:"details,omitempty"`
-	Message *string                           `json:"message,omitempty"`
-	Reason  *string                           `json:"reason,omitempty"`
-	Request *string                           `json:"request,omitempty"`
-	Status  *string                           `json:"status,omitempty"`
-}
-
-// NewGenericErrorPayload instantiates a new GenericErrorPayload object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewGenericErrorPayload() *GenericErrorPayload {
-	this := GenericErrorPayload{}
-	return &this
-}
-
-// NewGenericErrorPayloadWithDefaults instantiates a new GenericErrorPayload object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewGenericErrorPayloadWithDefaults() *GenericErrorPayload {
-	this := GenericErrorPayload{}
-	return &this
-}
-
-// GetCode returns the Code field value if set, zero value otherwise.
-func (o *GenericErrorPayload) GetCode() int64 {
-	if o == nil || o.Code == nil {
-		var ret int64
-		return ret
-	}
-	return *o.Code
-}
-
-// GetCodeOk returns a tuple with the Code field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-func (o *GenericErrorPayload) GetCodeOk() (*int64, bool) {
-	if o == nil || o.Code == nil {
-		return nil, false
-	}
-	return o.Code, true
-}
-
-// HasCode returns a boolean if a field has been set.
-func (o *GenericErrorPayload) HasCode() bool {
-	if o != nil && o.Code != nil {
-		return true
-	}
-
-	return false
-}
-
-// SetCode gets a reference to the given int64 and assigns it to the Code field.
-func (o *GenericErrorPayload) SetCode(v int64) {
-	o.Code = &v
-}
-
-// GetDebug returns the Debug field value if set, zero value otherwise.
-func (o *GenericErrorPayload) GetDebug() string {
-	if o == nil || o.Debug == nil {
-		var ret string
-		return ret
-	}
-	return *o.Debug
-}
-
-// GetDebugOk returns a tuple with the Debug field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-func (o *GenericErrorPayload) GetDebugOk() (*string, bool) {
-	if o == nil || o.Debug == nil {
-		return nil, false
-	}
-	return o.Debug, true
-}
-
-// HasDebug returns a boolean if a field has been set.
-func (o *GenericErrorPayload) HasDebug() bool {
-	if o != nil && o.Debug != nil {
-		return true
-	}
-
-	return false
-}
-
-// SetDebug gets a reference to the given string and assigns it to the Debug field.
-func (o *GenericErrorPayload) SetDebug(v string) {
-	o.Debug = &v
-}
-
-// GetDetails returns the Details field value if set, zero value otherwise.
-func (o *GenericErrorPayload) GetDetails() map[string]map[string]interface{} {
-	if o == nil || o.Details == nil {
-		var ret map[string]map[string]interface{}
-		return ret
-	}
-	return o.Details
-}
-
-// GetDetailsOk returns a tuple with the Details field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-func (o *GenericErrorPayload) GetDetailsOk() (map[string]map[string]interface{}, bool) {
-	if o == nil || o.Details == nil {
-		return nil, false
-	}
-	return o.Details, true
-}
-
-// HasDetails returns a boolean if a field has been set.
-func (o *GenericErrorPayload) HasDetails() bool {
-	if o != nil && o.Details != nil {
-		return true
-	}
-
-	return false
-}
-
-// SetDetails gets a reference to the given map[string]map[string]interface{} and assigns it to the Details field.
-func (o *GenericErrorPayload) SetDetails(v map[string]map[string]interface{}) {
-	o.Details = v
-}
-
-// GetMessage returns the Message field value if set, zero value otherwise.
-func (o *GenericErrorPayload) GetMessage() string {
-	if o == nil || o.Message == nil {
-		var ret string
-		return ret
-	}
-	return *o.Message
-}
-
-// GetMessageOk returns a tuple with the Message field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-func (o *GenericErrorPayload) GetMessageOk() (*string, bool) {
-	if o == nil || o.Message == nil {
-		return nil, false
-	}
-	return o.Message, true
-}
-
-// HasMessage returns a boolean if a field has been set.
-func (o *GenericErrorPayload) HasMessage() bool {
-	if o != nil && o.Message != nil {
-		return true
-	}
-
-	return false
-}
-
-// SetMessage gets a reference to the given string and assigns it to the Message field.
-func (o *GenericErrorPayload) SetMessage(v string) {
-	o.Message = &v
-}
-
-// GetReason returns the Reason field value if set, zero value otherwise.
-func (o *GenericErrorPayload) GetReason() string {
-	if o == nil || o.Reason == nil {
-		var ret string
-		return ret
-	}
-	return *o.Reason
-}
-
-// GetReasonOk returns a tuple with the Reason field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-func (o *GenericErrorPayload) GetReasonOk() (*string, bool) {
-	if o == nil || o.Reason == nil {
-		return nil, false
-	}
-	return o.Reason, true
-}
-
-// HasReason returns a boolean if a field has been set.
-func (o *GenericErrorPayload) HasReason() bool {
-	if o != nil && o.Reason != nil {
-		return true
-	}
-
-	return false
-}
-
-// SetReason gets a reference to the given string and assigns it to the Reason field.
-func (o *GenericErrorPayload) SetReason(v string) {
-	o.Reason = &v
-}
-
-// GetRequest returns the Request field value if set, zero value otherwise.
-func (o *GenericErrorPayload) GetRequest() string {
-	if o == nil || o.Request == nil {
-		var ret string
-		return ret
-	}
-	return *o.Request
-}
-
-// GetRequestOk returns a tuple with the Request field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-func (o *GenericErrorPayload) GetRequestOk() (*string, bool) {
-	if o == nil || o.Request == nil {
-		return nil, false
-	}
-	return o.Request, true
-}
-
-// HasRequest returns a boolean if a field has been set.
-func (o *GenericErrorPayload) HasRequest() bool {
-	if o != nil && o.Request != nil {
-		return true
-	}
-
-	return false
-}
-
-// SetRequest gets a reference to the given string and assigns it to the Request field.
-func (o *GenericErrorPayload) SetRequest(v string) {
-	o.Request = &v
-}
-
-// GetStatus returns the Status field value if set, zero value otherwise.
-func (o *GenericErrorPayload) GetStatus() string {
-	if o == nil || o.Status == nil {
-		var ret string
-		return ret
-	}
-	return *o.Status
-}
-
-// GetStatusOk returns a tuple with the Status field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-func (o *GenericErrorPayload) GetStatusOk() (*string, bool) {
-	if o == nil || o.Status == nil {
-		return nil, false
-	}
-	return o.Status, true
-}
-
-// HasStatus returns a boolean if a field has been set.
-func (o *GenericErrorPayload) HasStatus() bool {
-	if o != nil && o.Status != nil {
-		return true
-	}
-
-	return false
-}
-
-// SetStatus gets a reference to the given string and assigns it to the Status field.
-func (o *GenericErrorPayload) SetStatus(v string) {
-	o.Status = &v
-}
-
-func (o GenericErrorPayload) MarshalJSON() ([]byte, error) {
-	toSerialize := map[string]interface{}{}
-	if o.Code != nil {
-		toSerialize["code"] = o.Code
-	}
-	if o.Debug != nil {
-		toSerialize["debug"] = o.Debug
-	}
-	if o.Details != nil {
-		toSerialize["details"] = o.Details
-	}
-	if o.Message != nil {
-		toSerialize["message"] = o.Message
-	}
-	if o.Reason != nil {
-		toSerialize["reason"] = o.Reason
-	}
-	if o.Request != nil {
-		toSerialize["request"] = o.Request
-	}
-	if o.Status != nil {
-		toSerialize["status"] = o.Status
-	}
-	return json.Marshal(toSerialize)
-}
-
-type NullableGenericErrorPayload struct {
-	value *GenericErrorPayload
-	isSet bool
-}
-
-func (v NullableGenericErrorPayload) Get() *GenericErrorPayload {
-	return v.value
-}
-
-func (v *NullableGenericErrorPayload) Set(val *GenericErrorPayload) {
-	v.value = val
-	v.isSet = true
-}
-
-func (v NullableGenericErrorPayload) IsSet() bool {
-	return v.isSet
-}
-
-func (v *NullableGenericErrorPayload) Unset() {
-	v.value = nil
-	v.isSet = false
-}
-
-func NewNullableGenericErrorPayload(val *GenericErrorPayload) *NullableGenericErrorPayload {
-	return &NullableGenericErrorPayload{value: val, isSet: true}
-}
-
-func (v NullableGenericErrorPayload) MarshalJSON() ([]byte, error) {
-	return json.Marshal(v.value)
-}
-
-func (v *NullableGenericErrorPayload) UnmarshalJSON(src []byte) error {
-	v.isSet = true
-	return json.Unmarshal(src, &v.value)
-}
diff --git a/internal/httpclient/model_identity.go b/internal/httpclient/model_identity.go
index 675231268..af9a03857 100644
--- a/internal/httpclient/model_identity.go
+++ b/internal/httpclient/model_identity.go
@@ -20,7 +20,9 @@ import (
 type Identity struct {
 	// CreatedAt is a helper struct field for gobuffalo.pop.
 	CreatedAt *time.Time `json:"created_at,omitempty"`
-	Id        string     `json:"id"`
+	// Credentials represents all credentials that can be used for authenticating this identity.
+	Credentials *map[string]IdentityCredentials `json:"credentials,omitempty"`
+	Id          string                          `json:"id"`
 	// RecoveryAddresses contains all the addresses that can be used to recover an identity.
 	RecoveryAddresses []RecoveryAddress `json:"recovery_addresses,omitempty"`
 	// SchemaID is the ID of the JSON Schema to be used for validating the identity's traits.
@@ -88,6 +90,38 @@ func (o *Identity) SetCreatedAt(v time.Time) {
 	o.CreatedAt = &v
 }
 
+// GetCredentials returns the Credentials field value if set, zero value otherwise.
+func (o *Identity) GetCredentials() map[string]IdentityCredentials {
+	if o == nil || o.Credentials == nil {
+		var ret map[string]IdentityCredentials
+		return ret
+	}
+	return *o.Credentials
+}
+
+// GetCredentialsOk returns a tuple with the Credentials field value if set, nil otherwise
+// and a boolean to check if the value has been set.
+func (o *Identity) GetCredentialsOk() (*map[string]IdentityCredentials, bool) {
+	if o == nil || o.Credentials == nil {
+		return nil, false
+	}
+	return o.Credentials, true
+}
+
+// HasCredentials returns a boolean if a field has been set.
+func (o *Identity) HasCredentials() bool {
+	if o != nil && o.Credentials != nil {
+		return true
+	}
+
+	return false
+}
+
+// SetCredentials gets a reference to the given map[string]IdentityCredentials and assigns it to the Credentials field.
+func (o *Identity) SetCredentials(v map[string]IdentityCredentials) {
+	o.Credentials = &v
+}
+
 // GetId returns the Id field value
 func (o *Identity) GetId() string {
 	if o == nil {
@@ -287,6 +321,9 @@ func (o Identity) MarshalJSON() ([]byte, error) {
 	if o.CreatedAt != nil {
 		toSerialize["created_at"] = o.CreatedAt
 	}
+	if o.Credentials != nil {
+		toSerialize["credentials"] = o.Credentials
+	}
 	if true {
 		toSerialize["id"] = o.Id
 	}
diff --git a/internal/httpclient/model_login_flow_method.go b/internal/httpclient/model_login_flow_method.go
deleted file mode 100644
index 8601b09bb..000000000
--- a/internal/httpclient/model_login_flow_method.go
+++ /dev/null
@@ -1,137 +0,0 @@
-/*
- * Ory Kratos API
- *
- * Documentation for all public and administrative Ory Kratos APIs. Public and administrative APIs are exposed on different ports. Public APIs can face the public internet without any protection while administrative APIs should never be exposed without prior authorization. To protect the administative API port you should use something like Nginx, Ory Oathkeeper, or any other technology capable of authorizing incoming requests.
- *
- * API version: 1.0.0
- * Contact: hi@ory.sh
- */
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package kratos
-
-import (
-	"encoding/json"
-)
-
-// LoginFlowMethod struct for LoginFlowMethod
-type LoginFlowMethod struct {
-	Config LoginFlowMethodConfig `json:"config"`
-	// and so on.
-	Method string `json:"method"`
-}
-
-// NewLoginFlowMethod instantiates a new LoginFlowMethod object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewLoginFlowMethod(config LoginFlowMethodConfig, method string) *LoginFlowMethod {
-	this := LoginFlowMethod{}
-	this.Config = config
-	this.Method = method
-	return &this
-}
-
-// NewLoginFlowMethodWithDefaults instantiates a new LoginFlowMethod object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewLoginFlowMethodWithDefaults() *LoginFlowMethod {
-	this := LoginFlowMethod{}
-	return &this
-}
-
-// GetConfig returns the Config field value
-func (o *LoginFlowMethod) GetConfig() LoginFlowMethodConfig {
-	if o == nil {
-		var ret LoginFlowMethodConfig
-		return ret
-	}
-
-	return o.Config
-}
-
-// GetConfigOk returns a tuple with the Config field value
-// and a boolean to check if the value has been set.
-func (o *LoginFlowMethod) GetConfigOk() (*LoginFlowMethodConfig, bool) {
-	if o == nil {
-		return nil, false
-	}
-	return &o.Config, true
-}
-
-// SetConfig sets field value
-func (o *LoginFlowMethod) SetConfig(v LoginFlowMethodConfig) {
-	o.Config = v
-}
-
-// GetMethod returns the Method field value
-func (o *LoginFlowMethod) GetMethod() string {
-	if o == nil {
-		var ret string
-		return ret
-	}
-
-	return o.Method
-}
-
-// GetMethodOk returns a tuple with the Method field value
-// and a boolean to check if the value has been set.
-func (o *LoginFlowMethod) GetMethodOk() (*string, bool) {
-	if o == nil {
-		return nil, false
-	}
-	return &o.Method, true
-}
-
-// SetMethod sets field value
-func (o *LoginFlowMethod) SetMethod(v string) {
-	o.Method = v
-}
-
-func (o LoginFlowMethod) MarshalJSON() ([]byte, error) {
-	toSerialize := map[string]interface{}{}
-	if true {
-		toSerialize["config"] = o.Config
-	}
-	if true {
-		toSerialize["method"] = o.Method
-	}
-	return json.Marshal(toSerialize)
-}
-
-type NullableLoginFlowMethod struct {
-	value *LoginFlowMethod
-	isSet bool
-}
-
-func (v NullableLoginFlowMethod) Get() *LoginFlowMethod {
-	return v.value
-}
-
-func (v *NullableLoginFlowMethod) Set(val *LoginFlowMethod) {
-	v.value = val
-	v.isSet = true
-}
-
-func (v NullableLoginFlowMethod) IsSet() bool {
-	return v.isSet
-}
-
-func (v *NullableLoginFlowMethod) Unset() {
-	v.value = nil
-	v.isSet = false
-}
-
-func NewNullableLoginFlowMethod(val *LoginFlowMethod) *NullableLoginFlowMethod {
-	return &NullableLoginFlowMethod{value: val, isSet: true}
-}
-
-func (v NullableLoginFlowMethod) MarshalJSON() ([]byte, error) {
-	return json.Marshal(v.value)
-}
-
-func (v *NullableLoginFlowMethod) UnmarshalJSON(src []byte) error {
-	v.isSet = true
-	return json.Unmarshal(src, &v.value)
-}
diff --git a/internal/httpclient/model_login_flow_method_config.go b/internal/httpclient/model_login_flow_method_config.go
deleted file mode 100644
index 2138cff0e..000000000
--- a/internal/httpclient/model_login_flow_method_config.go
+++ /dev/null
@@ -1,239 +0,0 @@
-/*
- * Ory Kratos API
- *
- * Documentation for all public and administrative Ory Kratos APIs. Public and administrative APIs are exposed on different ports. Public APIs can face the public internet without any protection while administrative APIs should never be exposed without prior authorization. To protect the administative API port you should use something like Nginx, Ory Oathkeeper, or any other technology capable of authorizing incoming requests.
- *
- * API version: 1.0.0
- * Contact: hi@ory.sh
- */
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package kratos
-
-import (
-	"encoding/json"
-)
-
-// LoginFlowMethodConfig struct for LoginFlowMethodConfig
-type LoginFlowMethodConfig struct {
-	// Action should be used as the form action URL `<form action=\"{{ .Action }}\" method=\"post\">`.
-	Action   string   `json:"action"`
-	Messages []UiText `json:"messages,omitempty"`
-	// Method is the form method (e.g. POST)
-	Method    string   `json:"method"`
-	Nodes     []UiNode `json:"nodes"`
-	Providers []UiNode `json:"providers,omitempty"`
-}
-
-// NewLoginFlowMethodConfig instantiates a new LoginFlowMethodConfig object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewLoginFlowMethodConfig(action string, method string, nodes []UiNode) *LoginFlowMethodConfig {
-	this := LoginFlowMethodConfig{}
-	this.Action = action
-	this.Method = method
-	this.Nodes = nodes
-	return &this
-}
-
-// NewLoginFlowMethodConfigWithDefaults instantiates a new LoginFlowMethodConfig object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewLoginFlowMethodConfigWithDefaults() *LoginFlowMethodConfig {
-	this := LoginFlowMethodConfig{}
-	return &this
-}
-
-// GetAction returns the Action field value
-func (o *LoginFlowMethodConfig) GetAction() string {
-	if o == nil {
-		var ret string
-		return ret
-	}
-
-	return o.Action
-}
-
-// GetActionOk returns a tuple with the Action field value
-// and a boolean to check if the value has been set.
-func (o *LoginFlowMethodConfig) GetActionOk() (*string, bool) {
-	if o == nil {
-		return nil, false
-	}
-	return &o.Action, true
-}
-
-// SetAction sets field value
-func (o *LoginFlowMethodConfig) SetAction(v string) {
-	o.Action = v
-}
-
-// GetMessages returns the Messages field value if set, zero value otherwise.
-func (o *LoginFlowMethodConfig) GetMessages() []UiText {
-	if o == nil || o.Messages == nil {
-		var ret []UiText
-		return ret
-	}
-	return o.Messages
-}
-
-// GetMessagesOk returns a tuple with the Messages field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-func (o *LoginFlowMethodConfig) GetMessagesOk() ([]UiText, bool) {
-	if o == nil || o.Messages == nil {
-		return nil, false
-	}
-	return o.Messages, true
-}
-
-// HasMessages returns a boolean if a field has been set.
-func (o *LoginFlowMethodConfig) HasMessages() bool {
-	if o != nil && o.Messages != nil {
-		return true
-	}
-
-	return false
-}
-
-// SetMessages gets a reference to the given []UiText and assigns it to the Messages field.
-func (o *LoginFlowMethodConfig) SetMessages(v []UiText) {
-	o.Messages = v
-}
-
-// GetMethod returns the Method field value
-func (o *LoginFlowMethodConfig) GetMethod() string {
-	if o == nil {
-		var ret string
-		return ret
-	}
-
-	return o.Method
-}
-
-// GetMethodOk returns a tuple with the Method field value
-// and a boolean to check if the value has been set.
-func (o *LoginFlowMethodConfig) GetMethodOk() (*string, bool) {
-	if o == nil {
-		return nil, false
-	}
-	return &o.Method, true
-}
-
-// SetMethod sets field value
-func (o *LoginFlowMethodConfig) SetMethod(v string) {
-	o.Method = v
-}
-
-// GetNodes returns the Nodes field value
-func (o *LoginFlowMethodConfig) GetNodes() []UiNode {
-	if o == nil {
-		var ret []UiNode
-		return ret
-	}
-
-	return o.Nodes
-}
-
-// GetNodesOk returns a tuple with the Nodes field value
-// and a boolean to check if the value has been set.
-func (o *LoginFlowMethodConfig) GetNodesOk() ([]UiNode, bool) {
-	if o == nil {
-		return nil, false
-	}
-	return o.Nodes, true
-}
-
-// SetNodes sets field value
-func (o *LoginFlowMethodConfig) SetNodes(v []UiNode) {
-	o.Nodes = v
-}
-
-// GetProviders returns the Providers field value if set, zero value otherwise.
-func (o *LoginFlowMethodConfig) GetProviders() []UiNode {
-	if o == nil || o.Providers == nil {
-		var ret []UiNode
-		return ret
-	}
-	return o.Providers
-}
-
-// GetProvidersOk returns a tuple with the Providers field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-func (o *LoginFlowMethodConfig) GetProvidersOk() ([]UiNode, bool) {
-	if o == nil || o.Providers == nil {
-		return nil, false
-	}
-	return o.Providers, true
-}
-
-// HasProviders returns a boolean if a field has been set.
-func (o *LoginFlowMethodConfig) HasProviders() bool {
-	if o != nil && o.Providers != nil {
-		return true
-	}
-
-	return false
-}
-
-// SetProviders gets a reference to the given []UiNode and assigns it to the Providers field.
-func (o *LoginFlowMethodConfig) SetProviders(v []UiNode) {
-	o.Providers = v
-}
-
-func (o LoginFlowMethodConfig) MarshalJSON() ([]byte, error) {
-	toSerialize := map[string]interface{}{}
-	if true {
-		toSerialize["action"] = o.Action
-	}
-	if o.Messages != nil {
-		toSerialize["messages"] = o.Messages
-	}
-	if true {
-		toSerialize["method"] = o.Method
-	}
-	if true {
-		toSerialize["nodes"] = o.Nodes
-	}
-	if o.Providers != nil {
-		toSerialize["providers"] = o.Providers
-	}
-	return json.Marshal(toSerialize)
-}
-
-type NullableLoginFlowMethodConfig struct {
-	value *LoginFlowMethodConfig
-	isSet bool
-}
-
-func (v NullableLoginFlowMethodConfig) Get() *LoginFlowMethodConfig {
-	return v.value
-}
-
-func (v *NullableLoginFlowMethodConfig) Set(val *LoginFlowMethodConfig) {
-	v.value = val
-	v.isSet = true
-}
-
-func (v NullableLoginFlowMethodConfig) IsSet() bool {
-	return v.isSet
-}
-
-func (v *NullableLoginFlowMethodConfig) Unset() {
-	v.value = nil
-	v.isSet = false
-}
-
-func NewNullableLoginFlowMethodConfig(val *LoginFlowMethodConfig) *NullableLoginFlowMethodConfig {
-	return &NullableLoginFlowMethodConfig{value: val, isSet: true}
-}
-
-func (v NullableLoginFlowMethodConfig) MarshalJSON() ([]byte, error) {
-	return json.Marshal(v.value)
-}
-
-func (v *NullableLoginFlowMethodConfig) UnmarshalJSON(src []byte) error {
-	v.isSet = true
-	return json.Unmarshal(src, &v.value)
-}
diff --git a/internal/httpclient/model_login_flow_method_config_payload.go b/internal/httpclient/model_login_flow_method_config_payload.go
deleted file mode 100644
index 133c35d93..000000000
--- a/internal/httpclient/model_login_flow_method_config_payload.go
+++ /dev/null
@@ -1,239 +0,0 @@
-/*
- * Ory Kratos API
- *
- * Documentation for all public and administrative Ory Kratos APIs. Public and administrative APIs are exposed on different ports. Public APIs can face the public internet without any protection while administrative APIs should never be exposed without prior authorization. To protect the administative API port you should use something like Nginx, Ory Oathkeeper, or any other technology capable of authorizing incoming requests.
- *
- * API version: 1.0.0
- * Contact: hi@ory.sh
- */
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package kratos
-
-import (
-	"encoding/json"
-)
-
-// LoginFlowMethodConfigPayload struct for LoginFlowMethodConfigPayload
-type LoginFlowMethodConfigPayload struct {
-	// Action should be used as the form action URL `<form action=\"{{ .Action }}\" method=\"post\">`.
-	Action   string   `json:"action"`
-	Messages []UiText `json:"messages,omitempty"`
-	// Method is the form method (e.g. POST)
-	Method    string   `json:"method"`
-	Nodes     []UiNode `json:"nodes"`
-	Providers []UiNode `json:"providers,omitempty"`
-}
-
-// NewLoginFlowMethodConfigPayload instantiates a new LoginFlowMethodConfigPayload object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewLoginFlowMethodConfigPayload(action string, method string, nodes []UiNode) *LoginFlowMethodConfigPayload {
-	this := LoginFlowMethodConfigPayload{}
-	this.Action = action
-	this.Method = method
-	this.Nodes = nodes
-	return &this
-}
-
-// NewLoginFlowMethodConfigPayloadWithDefaults instantiates a new LoginFlowMethodConfigPayload object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewLoginFlowMethodConfigPayloadWithDefaults() *LoginFlowMethodConfigPayload {
-	this := LoginFlowMethodConfigPayload{}
-	return &this
-}
-
-// GetAction returns the Action field value
-func (o *LoginFlowMethodConfigPayload) GetAction() string {
-	if o == nil {
-		var ret string
-		return ret
-	}
-
-	return o.Action
-}
-
-// GetActionOk returns a tuple with the Action field value
-// and a boolean to check if the value has been set.
-func (o *LoginFlowMethodConfigPayload) GetActionOk() (*string, bool) {
-	if o == nil {
-		return nil, false
-	}
-	return &o.Action, true
-}
-
-// SetAction sets field value
-func (o *LoginFlowMethodConfigPayload) SetAction(v string) {
-	o.Action = v
-}
-
-// GetMessages returns the Messages field value if set, zero value otherwise.
-func (o *LoginFlowMethodConfigPayload) GetMessages() []UiText {
-	if o == nil || o.Messages == nil {
-		var ret []UiText
-		return ret
-	}
-	return o.Messages
-}
-
-// GetMessagesOk returns a tuple with the Messages field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-func (o *LoginFlowMethodConfigPayload) GetMessagesOk() ([]UiText, bool) {
-	if o == nil || o.Messages == nil {
-		return nil, false
-	}
-	return o.Messages, true
-}
-
-// HasMessages returns a boolean if a field has been set.
-func (o *LoginFlowMethodConfigPayload) HasMessages() bool {
-	if o != nil && o.Messages != nil {
-		return true
-	}
-
-	return false
-}
-
-// SetMessages gets a reference to the given []UiText and assigns it to the Messages field.
-func (o *LoginFlowMethodConfigPayload) SetMessages(v []UiText) {
-	o.Messages = v
-}
-
-// GetMethod returns the Method field value
-func (o *LoginFlowMethodConfigPayload) GetMethod() string {
-	if o == nil {
-		var ret string
-		return ret
-	}
-
-	return o.Method
-}
-
-// GetMethodOk returns a tuple with the Method field value
-// and a boolean to check if the value has been set.
-func (o *LoginFlowMethodConfigPayload) GetMethodOk() (*string, bool) {
-	if o == nil {
-		return nil, false
-	}
-	return &o.Method, true
-}
-
-// SetMethod sets field value
-func (o *LoginFlowMethodConfigPayload) SetMethod(v string) {
-	o.Method = v
-}
-
-// GetNodes returns the Nodes field value
-func (o *LoginFlowMethodConfigPayload) GetNodes() []UiNode {
-	if o == nil {
-		var ret []UiNode
-		return ret
-	}
-
-	return o.Nodes
-}
-
-// GetNodesOk returns a tuple with the Nodes field value
-// and a boolean to check if the value has been set.
-func (o *LoginFlowMethodConfigPayload) GetNodesOk() ([]UiNode, bool) {
-	if o == nil {
-		return nil, false
-	}
-	return o.Nodes, true
-}
-
-// SetNodes sets field value
-func (o *LoginFlowMethodConfigPayload) SetNodes(v []UiNode) {
-	o.Nodes = v
-}
-
-// GetProviders returns the Providers field value if set, zero value otherwise.
-func (o *LoginFlowMethodConfigPayload) GetProviders() []UiNode {
-	if o == nil || o.Providers == nil {
-		var ret []UiNode
-		return ret
-	}
-	return o.Providers
-}
-
-// GetProvidersOk returns a tuple with the Providers field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-func (o *LoginFlowMethodConfigPayload) GetProvidersOk() ([]UiNode, bool) {
-	if o == nil || o.Providers == nil {
-		return nil, false
-	}
-	return o.Providers, true
-}
-
-// HasProviders returns a boolean if a field has been set.
-func (o *LoginFlowMethodConfigPayload) HasProviders() bool {
-	if o != nil && o.Providers != nil {
-		return true
-	}
-
-	return false
-}
-
-// SetProviders gets a reference to the given []UiNode and assigns it to the Providers field.
-func (o *LoginFlowMethodConfigPayload) SetProviders(v []UiNode) {
-	o.Providers = v
-}
-
-func (o LoginFlowMethodConfigPayload) MarshalJSON() ([]byte, error) {
-	toSerialize := map[string]interface{}{}
-	if true {
-		toSerialize["action"] = o.Action
-	}
-	if o.Messages != nil {
-		toSerialize["messages"] = o.Messages
-	}
-	if true {
-		toSerialize["method"] = o.Method
-	}
-	if true {
-		toSerialize["nodes"] = o.Nodes
-	}
-	if o.Providers != nil {
-		toSerialize["providers"] = o.Providers
-	}
-	return json.Marshal(toSerialize)
-}
-
-type NullableLoginFlowMethodConfigPayload struct {
-	value *LoginFlowMethodConfigPayload
-	isSet bool
-}
-
-func (v NullableLoginFlowMethodConfigPayload) Get() *LoginFlowMethodConfigPayload {
-	return v.value
-}
-
-func (v *NullableLoginFlowMethodConfigPayload) Set(val *LoginFlowMethodConfigPayload) {
-	v.value = val
-	v.isSet = true
-}
-
-func (v NullableLoginFlowMethodConfigPayload) IsSet() bool {
-	return v.isSet
-}
-
-func (v *NullableLoginFlowMethodConfigPayload) Unset() {
-	v.value = nil
-	v.isSet = false
-}
-
-func NewNullableLoginFlowMethodConfigPayload(val *LoginFlowMethodConfigPayload) *NullableLoginFlowMethodConfigPayload {
-	return &NullableLoginFlowMethodConfigPayload{value: val, isSet: true}
-}
-
-func (v NullableLoginFlowMethodConfigPayload) MarshalJSON() ([]byte, error) {
-	return json.Marshal(v.value)
-}
-
-func (v *NullableLoginFlowMethodConfigPayload) UnmarshalJSON(src []byte) error {
-	v.isSet = true
-	return json.Unmarshal(src, &v.value)
-}
diff --git a/internal/httpclient/model_recovery_flow_method.go b/internal/httpclient/model_recovery_flow_method.go
deleted file mode 100644
index 8f0413001..000000000
--- a/internal/httpclient/model_recovery_flow_method.go
+++ /dev/null
@@ -1,137 +0,0 @@
-/*
- * Ory Kratos API
- *
- * Documentation for all public and administrative Ory Kratos APIs. Public and administrative APIs are exposed on different ports. Public APIs can face the public internet without any protection while administrative APIs should never be exposed without prior authorization. To protect the administative API port you should use something like Nginx, Ory Oathkeeper, or any other technology capable of authorizing incoming requests.
- *
- * API version: 1.0.0
- * Contact: hi@ory.sh
- */
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package kratos
-
-import (
-	"encoding/json"
-)
-
-// RecoveryFlowMethod struct for RecoveryFlowMethod
-type RecoveryFlowMethod struct {
-	Config RecoveryFlowMethodConfig `json:"config"`
-	// Method contains the request credentials type.
-	Method string `json:"method"`
-}
-
-// NewRecoveryFlowMethod instantiates a new RecoveryFlowMethod object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewRecoveryFlowMethod(config RecoveryFlowMethodConfig, method string) *RecoveryFlowMethod {
-	this := RecoveryFlowMethod{}
-	this.Config = config
-	this.Method = method
-	return &this
-}
-
-// NewRecoveryFlowMethodWithDefaults instantiates a new RecoveryFlowMethod object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewRecoveryFlowMethodWithDefaults() *RecoveryFlowMethod {
-	this := RecoveryFlowMethod{}
-	return &this
-}
-
-// GetConfig returns the Config field value
-func (o *RecoveryFlowMethod) GetConfig() RecoveryFlowMethodConfig {
-	if o == nil {
-		var ret RecoveryFlowMethodConfig
-		return ret
-	}
-
-	return o.Config
-}
-
-// GetConfigOk returns a tuple with the Config field value
-// and a boolean to check if the value has been set.
-func (o *RecoveryFlowMethod) GetConfigOk() (*RecoveryFlowMethodConfig, bool) {
-	if o == nil {
-		return nil, false
-	}
-	return &o.Config, true
-}
-
-// SetConfig sets field value
-func (o *RecoveryFlowMethod) SetConfig(v RecoveryFlowMethodConfig) {
-	o.Config = v
-}
-
-// GetMethod returns the Method field value
-func (o *RecoveryFlowMethod) GetMethod() string {
-	if o == nil {
-		var ret string
-		return ret
-	}
-
-	return o.Method
-}
-
-// GetMethodOk returns a tuple with the Method field value
-// and a boolean to check if the value has been set.
-func (o *RecoveryFlowMethod) GetMethodOk() (*string, bool) {
-	if o == nil {
-		return nil, false
-	}
-	return &o.Method, true
-}
-
-// SetMethod sets field value
-func (o *RecoveryFlowMethod) SetMethod(v string) {
-	o.Method = v
-}
-
-func (o RecoveryFlowMethod) MarshalJSON() ([]byte, error) {
-	toSerialize := map[string]interface{}{}
-	if true {
-		toSerialize["config"] = o.Config
-	}
-	if true {
-		toSerialize["method"] = o.Method
-	}
-	return json.Marshal(toSerialize)
-}
-
-type NullableRecoveryFlowMethod struct {
-	value *RecoveryFlowMethod
-	isSet bool
-}
-
-func (v NullableRecoveryFlowMethod) Get() *RecoveryFlowMethod {
-	return v.value
-}
-
-func (v *NullableRecoveryFlowMethod) Set(val *RecoveryFlowMethod) {
-	v.value = val
-	v.isSet = true
-}
-
-func (v NullableRecoveryFlowMethod) IsSet() bool {
-	return v.isSet
-}
-
-func (v *NullableRecoveryFlowMethod) Unset() {
-	v.value = nil
-	v.isSet = false
-}
-
-func NewNullableRecoveryFlowMethod(val *RecoveryFlowMethod) *NullableRecoveryFlowMethod {
-	return &NullableRecoveryFlowMethod{value: val, isSet: true}
-}
-
-func (v NullableRecoveryFlowMethod) MarshalJSON() ([]byte, error) {
-	return json.Marshal(v.value)
-}
-
-func (v *NullableRecoveryFlowMethod) UnmarshalJSON(src []byte) error {
-	v.isSet = true
-	return json.Unmarshal(src, &v.value)
-}
diff --git a/internal/httpclient/model_recovery_flow_method_config.go b/internal/httpclient/model_recovery_flow_method_config.go
deleted file mode 100644
index 528d5664e..000000000
--- a/internal/httpclient/model_recovery_flow_method_config.go
+++ /dev/null
@@ -1,203 +0,0 @@
-/*
- * Ory Kratos API
- *
- * Documentation for all public and administrative Ory Kratos APIs. Public and administrative APIs are exposed on different ports. Public APIs can face the public internet without any protection while administrative APIs should never be exposed without prior authorization. To protect the administative API port you should use something like Nginx, Ory Oathkeeper, or any other technology capable of authorizing incoming requests.
- *
- * API version: 1.0.0
- * Contact: hi@ory.sh
- */
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package kratos
-
-import (
-	"encoding/json"
-)
-
-// RecoveryFlowMethodConfig struct for RecoveryFlowMethodConfig
-type RecoveryFlowMethodConfig struct {
-	// Action should be used as the form action URL `<form action=\"{{ .Action }}\" method=\"post\">`.
-	Action   string   `json:"action"`
-	Messages []UiText `json:"messages,omitempty"`
-	// Method is the form method (e.g. POST)
-	Method string   `json:"method"`
-	Nodes  []UiNode `json:"nodes"`
-}
-
-// NewRecoveryFlowMethodConfig instantiates a new RecoveryFlowMethodConfig object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewRecoveryFlowMethodConfig(action string, method string, nodes []UiNode) *RecoveryFlowMethodConfig {
-	this := RecoveryFlowMethodConfig{}
-	this.Action = action
-	this.Method = method
-	this.Nodes = nodes
-	return &this
-}
-
-// NewRecoveryFlowMethodConfigWithDefaults instantiates a new RecoveryFlowMethodConfig object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewRecoveryFlowMethodConfigWithDefaults() *RecoveryFlowMethodConfig {
-	this := RecoveryFlowMethodConfig{}
-	return &this
-}
-
-// GetAction returns the Action field value
-func (o *RecoveryFlowMethodConfig) GetAction() string {
-	if o == nil {
-		var ret string
-		return ret
-	}
-
-	return o.Action
-}
-
-// GetActionOk returns a tuple with the Action field value
-// and a boolean to check if the value has been set.
-func (o *RecoveryFlowMethodConfig) GetActionOk() (*string, bool) {
-	if o == nil {
-		return nil, false
-	}
-	return &o.Action, true
-}
-
-// SetAction sets field value
-func (o *RecoveryFlowMethodConfig) SetAction(v string) {
-	o.Action = v
-}
-
-// GetMessages returns the Messages field value if set, zero value otherwise.
-func (o *RecoveryFlowMethodConfig) GetMessages() []UiText {
-	if o == nil || o.Messages == nil {
-		var ret []UiText
-		return ret
-	}
-	return o.Messages
-}
-
-// GetMessagesOk returns a tuple with the Messages field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-func (o *RecoveryFlowMethodConfig) GetMessagesOk() ([]UiText, bool) {
-	if o == nil || o.Messages == nil {
-		return nil, false
-	}
-	return o.Messages, true
-}
-
-// HasMessages returns a boolean if a field has been set.
-func (o *RecoveryFlowMethodConfig) HasMessages() bool {
-	if o != nil && o.Messages != nil {
-		return true
-	}
-
-	return false
-}
-
-// SetMessages gets a reference to the given []UiText and assigns it to the Messages field.
-func (o *RecoveryFlowMethodConfig) SetMessages(v []UiText) {
-	o.Messages = v
-}
-
-// GetMethod returns the Method field value
-func (o *RecoveryFlowMethodConfig) GetMethod() string {
-	if o == nil {
-		var ret string
-		return ret
-	}
-
-	return o.Method
-}
-
-// GetMethodOk returns a tuple with the Method field value
-// and a boolean to check if the value has been set.
-func (o *RecoveryFlowMethodConfig) GetMethodOk() (*string, bool) {
-	if o == nil {
-		return nil, false
-	}
-	return &o.Method, true
-}
-
-// SetMethod sets field value
-func (o *RecoveryFlowMethodConfig) SetMethod(v string) {
-	o.Method = v
-}
-
-// GetNodes returns the Nodes field value
-func (o *RecoveryFlowMethodConfig) GetNodes() []UiNode {
-	if o == nil {
-		var ret []UiNode
-		return ret
-	}
-
-	return o.Nodes
-}
-
-// GetNodesOk returns a tuple with the Nodes field value
-// and a boolean to check if the value has been set.
-func (o *RecoveryFlowMethodConfig) GetNodesOk() ([]UiNode, bool) {
-	if o == nil {
-		return nil, false
-	}
-	return o.Nodes, true
-}
-
-// SetNodes sets field value
-func (o *RecoveryFlowMethodConfig) SetNodes(v []UiNode) {
-	o.Nodes = v
-}
-
-func (o RecoveryFlowMethodConfig) MarshalJSON() ([]byte, error) {
-	toSerialize := map[string]interface{}{}
-	if true {
-		toSerialize["action"] = o.Action
-	}
-	if o.Messages != nil {
-		toSerialize["messages"] = o.Messages
-	}
-	if true {
-		toSerialize["method"] = o.Method
-	}
-	if true {
-		toSerialize["nodes"] = o.Nodes
-	}
-	return json.Marshal(toSerialize)
-}
-
-type NullableRecoveryFlowMethodConfig struct {
-	value *RecoveryFlowMethodConfig
-	isSet bool
-}
-
-func (v NullableRecoveryFlowMethodConfig) Get() *RecoveryFlowMethodConfig {
-	return v.value
-}
-
-func (v *NullableRecoveryFlowMethodConfig) Set(val *RecoveryFlowMethodConfig) {
-	v.value = val
-	v.isSet = true
-}
-
-func (v NullableRecoveryFlowMethodConfig) IsSet() bool {
-	return v.isSet
-}
-
-func (v *NullableRecoveryFlowMethodConfig) Unset() {
-	v.value = nil
-	v.isSet = false
-}
-
-func NewNullableRecoveryFlowMethodConfig(val *RecoveryFlowMethodConfig) *NullableRecoveryFlowMethodConfig {
-	return &NullableRecoveryFlowMethodConfig{value: val, isSet: true}
-}
-
-func (v NullableRecoveryFlowMethodConfig) MarshalJSON() ([]byte, error) {
-	return json.Marshal(v.value)
-}
-
-func (v *NullableRecoveryFlowMethodConfig) UnmarshalJSON(src []byte) error {
-	v.isSet = true
-	return json.Unmarshal(src, &v.value)
-}
diff --git a/internal/httpclient/model_recovery_flow_method_config_payload.go b/internal/httpclient/model_recovery_flow_method_config_payload.go
deleted file mode 100644
index bddbb493c..000000000
--- a/internal/httpclient/model_recovery_flow_method_config_payload.go
+++ /dev/null
@@ -1,203 +0,0 @@
-/*
- * Ory Kratos API
- *
- * Documentation for all public and administrative Ory Kratos APIs. Public and administrative APIs are exposed on different ports. Public APIs can face the public internet without any protection while administrative APIs should never be exposed without prior authorization. To protect the administative API port you should use something like Nginx, Ory Oathkeeper, or any other technology capable of authorizing incoming requests.
- *
- * API version: 1.0.0
- * Contact: hi@ory.sh
- */
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package kratos
-
-import (
-	"encoding/json"
-)
-
-// RecoveryFlowMethodConfigPayload struct for RecoveryFlowMethodConfigPayload
-type RecoveryFlowMethodConfigPayload struct {
-	// Action should be used as the form action URL `<form action=\"{{ .Action }}\" method=\"post\">`.
-	Action   string   `json:"action"`
-	Messages []UiText `json:"messages,omitempty"`
-	// Method is the form method (e.g. POST)
-	Method string   `json:"method"`
-	Nodes  []UiNode `json:"nodes"`
-}
-
-// NewRecoveryFlowMethodConfigPayload instantiates a new RecoveryFlowMethodConfigPayload object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewRecoveryFlowMethodConfigPayload(action string, method string, nodes []UiNode) *RecoveryFlowMethodConfigPayload {
-	this := RecoveryFlowMethodConfigPayload{}
-	this.Action = action
-	this.Method = method
-	this.Nodes = nodes
-	return &this
-}
-
-// NewRecoveryFlowMethodConfigPayloadWithDefaults instantiates a new RecoveryFlowMethodConfigPayload object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewRecoveryFlowMethodConfigPayloadWithDefaults() *RecoveryFlowMethodConfigPayload {
-	this := RecoveryFlowMethodConfigPayload{}
-	return &this
-}
-
-// GetAction returns the Action field value
-func (o *RecoveryFlowMethodConfigPayload) GetAction() string {
-	if o == nil {
-		var ret string
-		return ret
-	}
-
-	return o.Action
-}
-
-// GetActionOk returns a tuple with the Action field value
-// and a boolean to check if the value has been set.
-func (o *RecoveryFlowMethodConfigPayload) GetActionOk() (*string, bool) {
-	if o == nil {
-		return nil, false
-	}
-	return &o.Action, true
-}
-
-// SetAction sets field value
-func (o *RecoveryFlowMethodConfigPayload) SetAction(v string) {
-	o.Action = v
-}
-
-// GetMessages returns the Messages field value if set, zero value otherwise.
-func (o *RecoveryFlowMethodConfigPayload) GetMessages() []UiText {
-	if o == nil || o.Messages == nil {
-		var ret []UiText
-		return ret
-	}
-	return o.Messages
-}
-
-// GetMessagesOk returns a tuple with the Messages field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-func (o *RecoveryFlowMethodConfigPayload) GetMessagesOk() ([]UiText, bool) {
-	if o == nil || o.Messages == nil {
-		return nil, false
-	}
-	return o.Messages, true
-}
-
-// HasMessages returns a boolean if a field has been set.
-func (o *RecoveryFlowMethodConfigPayload) HasMessages() bool {
-	if o != nil && o.Messages != nil {
-		return true
-	}
-
-	return false
-}
-
-// SetMessages gets a reference to the given []UiText and assigns it to the Messages field.
-func (o *RecoveryFlowMethodConfigPayload) SetMessages(v []UiText) {
-	o.Messages = v
-}
-
-// GetMethod returns the Method field value
-func (o *RecoveryFlowMethodConfigPayload) GetMethod() string {
-	if o == nil {
-		var ret string
-		return ret
-	}
-
-	return o.Method
-}
-
-// GetMethodOk returns a tuple with the Method field value
-// and a boolean to check if the value has been set.
-func (o *RecoveryFlowMethodConfigPayload) GetMethodOk() (*string, bool) {
-	if o == nil {
-		return nil, false
-	}
-	return &o.Method, true
-}
-
-// SetMethod sets field value
-func (o *RecoveryFlowMethodConfigPayload) SetMethod(v string) {
-	o.Method = v
-}
-
-// GetNodes returns the Nodes field value
-func (o *RecoveryFlowMethodConfigPayload) GetNodes() []UiNode {
-	if o == nil {
-		var ret []UiNode
-		return ret
-	}
-
-	return o.Nodes
-}
-
-// GetNodesOk returns a tuple with the Nodes field value
-// and a boolean to check if the value has been set.
-func (o *RecoveryFlowMethodConfigPayload) GetNodesOk() ([]UiNode, bool) {
-	if o == nil {
-		return nil, false
-	}
-	return o.Nodes, true
-}
-
-// SetNodes sets field value
-func (o *RecoveryFlowMethodConfigPayload) SetNodes(v []UiNode) {
-	o.Nodes = v
-}
-
-func (o RecoveryFlowMethodConfigPayload) MarshalJSON() ([]byte, error) {
-	toSerialize := map[string]interface{}{}
-	if true {
-		toSerialize["action"] = o.Action
-	}
-	if o.Messages != nil {
-		toSerialize["messages"] = o.Messages
-	}
-	if true {
-		toSerialize["method"] = o.Method
-	}
-	if true {
-		toSerialize["nodes"] = o.Nodes
-	}
-	return json.Marshal(toSerialize)
-}
-
-type NullableRecoveryFlowMethodConfigPayload struct {
-	value *RecoveryFlowMethodConfigPayload
-	isSet bool
-}
-
-func (v NullableRecoveryFlowMethodConfigPayload) Get() *RecoveryFlowMethodConfigPayload {
-	return v.value
-}
-
-func (v *NullableRecoveryFlowMethodConfigPayload) Set(val *RecoveryFlowMethodConfigPayload) {
-	v.value = val
-	v.isSet = true
-}
-
-func (v NullableRecoveryFlowMethodConfigPayload) IsSet() bool {
-	return v.isSet
-}
-
-func (v *NullableRecoveryFlowMethodConfigPayload) Unset() {
-	v.value = nil
-	v.isSet = false
-}
-
-func NewNullableRecoveryFlowMethodConfigPayload(val *RecoveryFlowMethodConfigPayload) *NullableRecoveryFlowMethodConfigPayload {
-	return &NullableRecoveryFlowMethodConfigPayload{value: val, isSet: true}
-}
-
-func (v NullableRecoveryFlowMethodConfigPayload) MarshalJSON() ([]byte, error) {
-	return json.Marshal(v.value)
-}
-
-func (v *NullableRecoveryFlowMethodConfigPayload) UnmarshalJSON(src []byte) error {
-	v.isSet = true
-	return json.Unmarshal(src, &v.value)
-}
diff --git a/internal/httpclient/model_registration_flow_method.go b/internal/httpclient/model_registration_flow_method.go
deleted file mode 100644
index 7b84c4096..000000000
--- a/internal/httpclient/model_registration_flow_method.go
+++ /dev/null
@@ -1,137 +0,0 @@
-/*
- * Ory Kratos API
- *
- * Documentation for all public and administrative Ory Kratos APIs. Public and administrative APIs are exposed on different ports. Public APIs can face the public internet without any protection while administrative APIs should never be exposed without prior authorization. To protect the administative API port you should use something like Nginx, Ory Oathkeeper, or any other technology capable of authorizing incoming requests.
- *
- * API version: 1.0.0
- * Contact: hi@ory.sh
- */
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package kratos
-
-import (
-	"encoding/json"
-)
-
-// RegistrationFlowMethod struct for RegistrationFlowMethod
-type RegistrationFlowMethod struct {
-	Config RegistrationFlowMethodConfig `json:"config"`
-	// and so on.
-	Method string `json:"method"`
-}
-
-// NewRegistrationFlowMethod instantiates a new RegistrationFlowMethod object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewRegistrationFlowMethod(config RegistrationFlowMethodConfig, method string) *RegistrationFlowMethod {
-	this := RegistrationFlowMethod{}
-	this.Config = config
-	this.Method = method
-	return &this
-}
-
-// NewRegistrationFlowMethodWithDefaults instantiates a new RegistrationFlowMethod object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewRegistrationFlowMethodWithDefaults() *RegistrationFlowMethod {
-	this := RegistrationFlowMethod{}
-	return &this
-}
-
-// GetConfig returns the Config field value
-func (o *RegistrationFlowMethod) GetConfig() RegistrationFlowMethodConfig {
-	if o == nil {
-		var ret RegistrationFlowMethodConfig
-		return ret
-	}
-
-	return o.Config
-}
-
-// GetConfigOk returns a tuple with the Config field value
-// and a boolean to check if the value has been set.
-func (o *RegistrationFlowMethod) GetConfigOk() (*RegistrationFlowMethodConfig, bool) {
-	if o == nil {
-		return nil, false
-	}
-	return &o.Config, true
-}
-
-// SetConfig sets field value
-func (o *RegistrationFlowMethod) SetConfig(v RegistrationFlowMethodConfig) {
-	o.Config = v
-}
-
-// GetMethod returns the Method field value
-func (o *RegistrationFlowMethod) GetMethod() string {
-	if o == nil {
-		var ret string
-		return ret
-	}
-
-	return o.Method
-}
-
-// GetMethodOk returns a tuple with the Method field value
-// and a boolean to check if the value has been set.
-func (o *RegistrationFlowMethod) GetMethodOk() (*string, bool) {
-	if o == nil {
-		return nil, false
-	}
-	return &o.Method, true
-}
-
-// SetMethod sets field value
-func (o *RegistrationFlowMethod) SetMethod(v string) {
-	o.Method = v
-}
-
-func (o RegistrationFlowMethod) MarshalJSON() ([]byte, error) {
-	toSerialize := map[string]interface{}{}
-	if true {
-		toSerialize["config"] = o.Config
-	}
-	if true {
-		toSerialize["method"] = o.Method
-	}
-	return json.Marshal(toSerialize)
-}
-
-type NullableRegistrationFlowMethod struct {
-	value *RegistrationFlowMethod
-	isSet bool
-}
-
-func (v NullableRegistrationFlowMethod) Get() *RegistrationFlowMethod {
-	return v.value
-}
-
-func (v *NullableRegistrationFlowMethod) Set(val *RegistrationFlowMethod) {
-	v.value = val
-	v.isSet = true
-}
-
-func (v NullableRegistrationFlowMethod) IsSet() bool {
-	return v.isSet
-}
-
-func (v *NullableRegistrationFlowMethod) Unset() {
-	v.value = nil
-	v.isSet = false
-}
-
-func NewNullableRegistrationFlowMethod(val *RegistrationFlowMethod) *NullableRegistrationFlowMethod {
-	return &NullableRegistrationFlowMethod{value: val, isSet: true}
-}
-
-func (v NullableRegistrationFlowMethod) MarshalJSON() ([]byte, error) {
-	return json.Marshal(v.value)
-}
-
-func (v *NullableRegistrationFlowMethod) UnmarshalJSON(src []byte) error {
-	v.isSet = true
-	return json.Unmarshal(src, &v.value)
-}
diff --git a/internal/httpclient/model_registration_flow_method_config.go b/internal/httpclient/model_registration_flow_method_config.go
deleted file mode 100644
index 6fe775370..000000000
--- a/internal/httpclient/model_registration_flow_method_config.go
+++ /dev/null
@@ -1,240 +0,0 @@
-/*
- * Ory Kratos API
- *
- * Documentation for all public and administrative Ory Kratos APIs. Public and administrative APIs are exposed on different ports. Public APIs can face the public internet without any protection while administrative APIs should never be exposed without prior authorization. To protect the administative API port you should use something like Nginx, Ory Oathkeeper, or any other technology capable of authorizing incoming requests.
- *
- * API version: 1.0.0
- * Contact: hi@ory.sh
- */
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package kratos
-
-import (
-	"encoding/json"
-)
-
-// RegistrationFlowMethodConfig struct for RegistrationFlowMethodConfig
-type RegistrationFlowMethodConfig struct {
-	// Action should be used as the form action URL `<form action=\"{{ .Action }}\" method=\"post\">`.
-	Action   string   `json:"action"`
-	Messages []UiText `json:"messages,omitempty"`
-	// Method is the form method (e.g. POST)
-	Method string   `json:"method"`
-	Nodes  []UiNode `json:"nodes"`
-	// Providers is set for the \"oidc\" registration method.
-	Providers [][]UiNode `json:"providers,omitempty"`
-}
-
-// NewRegistrationFlowMethodConfig instantiates a new RegistrationFlowMethodConfig object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewRegistrationFlowMethodConfig(action string, method string, nodes []UiNode) *RegistrationFlowMethodConfig {
-	this := RegistrationFlowMethodConfig{}
-	this.Action = action
-	this.Method = method
-	this.Nodes = nodes
-	return &this
-}
-
-// NewRegistrationFlowMethodConfigWithDefaults instantiates a new RegistrationFlowMethodConfig object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewRegistrationFlowMethodConfigWithDefaults() *RegistrationFlowMethodConfig {
-	this := RegistrationFlowMethodConfig{}
-	return &this
-}
-
-// GetAction returns the Action field value
-func (o *RegistrationFlowMethodConfig) GetAction() string {
-	if o == nil {
-		var ret string
-		return ret
-	}
-
-	return o.Action
-}
-
-// GetActionOk returns a tuple with the Action field value
-// and a boolean to check if the value has been set.
-func (o *RegistrationFlowMethodConfig) GetActionOk() (*string, bool) {
-	if o == nil {
-		return nil, false
-	}
-	return &o.Action, true
-}
-
-// SetAction sets field value
-func (o *RegistrationFlowMethodConfig) SetAction(v string) {
-	o.Action = v
-}
-
-// GetMessages returns the Messages field value if set, zero value otherwise.
-func (o *RegistrationFlowMethodConfig) GetMessages() []UiText {
-	if o == nil || o.Messages == nil {
-		var ret []UiText
-		return ret
-	}
-	return o.Messages
-}
-
-// GetMessagesOk returns a tuple with the Messages field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-func (o *RegistrationFlowMethodConfig) GetMessagesOk() ([]UiText, bool) {
-	if o == nil || o.Messages == nil {
-		return nil, false
-	}
-	return o.Messages, true
-}
-
-// HasMessages returns a boolean if a field has been set.
-func (o *RegistrationFlowMethodConfig) HasMessages() bool {
-	if o != nil && o.Messages != nil {
-		return true
-	}
-
-	return false
-}
-
-// SetMessages gets a reference to the given []UiText and assigns it to the Messages field.
-func (o *RegistrationFlowMethodConfig) SetMessages(v []UiText) {
-	o.Messages = v
-}
-
-// GetMethod returns the Method field value
-func (o *RegistrationFlowMethodConfig) GetMethod() string {
-	if o == nil {
-		var ret string
-		return ret
-	}
-
-	return o.Method
-}
-
-// GetMethodOk returns a tuple with the Method field value
-// and a boolean to check if the value has been set.
-func (o *RegistrationFlowMethodConfig) GetMethodOk() (*string, bool) {
-	if o == nil {
-		return nil, false
-	}
-	return &o.Method, true
-}
-
-// SetMethod sets field value
-func (o *RegistrationFlowMethodConfig) SetMethod(v string) {
-	o.Method = v
-}
-
-// GetNodes returns the Nodes field value
-func (o *RegistrationFlowMethodConfig) GetNodes() []UiNode {
-	if o == nil {
-		var ret []UiNode
-		return ret
-	}
-
-	return o.Nodes
-}
-
-// GetNodesOk returns a tuple with the Nodes field value
-// and a boolean to check if the value has been set.
-func (o *RegistrationFlowMethodConfig) GetNodesOk() ([]UiNode, bool) {
-	if o == nil {
-		return nil, false
-	}
-	return o.Nodes, true
-}
-
-// SetNodes sets field value
-func (o *RegistrationFlowMethodConfig) SetNodes(v []UiNode) {
-	o.Nodes = v
-}
-
-// GetProviders returns the Providers field value if set, zero value otherwise.
-func (o *RegistrationFlowMethodConfig) GetProviders() [][]UiNode {
-	if o == nil || o.Providers == nil {
-		var ret [][]UiNode
-		return ret
-	}
-	return o.Providers
-}
-
-// GetProvidersOk returns a tuple with the Providers field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-func (o *RegistrationFlowMethodConfig) GetProvidersOk() ([][]UiNode, bool) {
-	if o == nil || o.Providers == nil {
-		return nil, false
-	}
-	return o.Providers, true
-}
-
-// HasProviders returns a boolean if a field has been set.
-func (o *RegistrationFlowMethodConfig) HasProviders() bool {
-	if o != nil && o.Providers != nil {
-		return true
-	}
-
-	return false
-}
-
-// SetProviders gets a reference to the given [][]UiNode and assigns it to the Providers field.
-func (o *RegistrationFlowMethodConfig) SetProviders(v [][]UiNode) {
-	o.Providers = v
-}
-
-func (o RegistrationFlowMethodConfig) MarshalJSON() ([]byte, error) {
-	toSerialize := map[string]interface{}{}
-	if true {
-		toSerialize["action"] = o.Action
-	}
-	if o.Messages != nil {
-		toSerialize["messages"] = o.Messages
-	}
-	if true {
-		toSerialize["method"] = o.Method
-	}
-	if true {
-		toSerialize["nodes"] = o.Nodes
-	}
-	if o.Providers != nil {
-		toSerialize["providers"] = o.Providers
-	}
-	return json.Marshal(toSerialize)
-}
-
-type NullableRegistrationFlowMethodConfig struct {
-	value *RegistrationFlowMethodConfig
-	isSet bool
-}
-
-func (v NullableRegistrationFlowMethodConfig) Get() *RegistrationFlowMethodConfig {
-	return v.value
-}
-
-func (v *NullableRegistrationFlowMethodConfig) Set(val *RegistrationFlowMethodConfig) {
-	v.value = val
-	v.isSet = true
-}
-
-func (v NullableRegistrationFlowMethodConfig) IsSet() bool {
-	return v.isSet
-}
-
-func (v *NullableRegistrationFlowMethodConfig) Unset() {
-	v.value = nil
-	v.isSet = false
-}
-
-func NewNullableRegistrationFlowMethodConfig(val *RegistrationFlowMethodConfig) *NullableRegistrationFlowMethodConfig {
-	return &NullableRegistrationFlowMethodConfig{value: val, isSet: true}
-}
-
-func (v NullableRegistrationFlowMethodConfig) MarshalJSON() ([]byte, error) {
-	return json.Marshal(v.value)
-}
-
-func (v *NullableRegistrationFlowMethodConfig) UnmarshalJSON(src []byte) error {
-	v.isSet = true
-	return json.Unmarshal(src, &v.value)
-}
diff --git a/internal/httpclient/model_registration_flow_method_config_payload.go b/internal/httpclient/model_registration_flow_method_config_payload.go
deleted file mode 100644
index 9b9ff1ffe..000000000
--- a/internal/httpclient/model_registration_flow_method_config_payload.go
+++ /dev/null
@@ -1,240 +0,0 @@
-/*
- * Ory Kratos API
- *
- * Documentation for all public and administrative Ory Kratos APIs. Public and administrative APIs are exposed on different ports. Public APIs can face the public internet without any protection while administrative APIs should never be exposed without prior authorization. To protect the administative API port you should use something like Nginx, Ory Oathkeeper, or any other technology capable of authorizing incoming requests.
- *
- * API version: 1.0.0
- * Contact: hi@ory.sh
- */
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package kratos
-
-import (
-	"encoding/json"
-)
-
-// RegistrationFlowMethodConfigPayload struct for RegistrationFlowMethodConfigPayload
-type RegistrationFlowMethodConfigPayload struct {
-	// Action should be used as the form action URL `<form action=\"{{ .Action }}\" method=\"post\">`.
-	Action   string   `json:"action"`
-	Messages []UiText `json:"messages,omitempty"`
-	// Method is the form method (e.g. POST)
-	Method string   `json:"method"`
-	Nodes  []UiNode `json:"nodes"`
-	// Providers is set for the \"oidc\" registration method.
-	Providers [][]UiNode `json:"providers,omitempty"`
-}
-
-// NewRegistrationFlowMethodConfigPayload instantiates a new RegistrationFlowMethodConfigPayload object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewRegistrationFlowMethodConfigPayload(action string, method string, nodes []UiNode) *RegistrationFlowMethodConfigPayload {
-	this := RegistrationFlowMethodConfigPayload{}
-	this.Action = action
-	this.Method = method
-	this.Nodes = nodes
-	return &this
-}
-
-// NewRegistrationFlowMethodConfigPayloadWithDefaults instantiates a new RegistrationFlowMethodConfigPayload object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewRegistrationFlowMethodConfigPayloadWithDefaults() *RegistrationFlowMethodConfigPayload {
-	this := RegistrationFlowMethodConfigPayload{}
-	return &this
-}
-
-// GetAction returns the Action field value
-func (o *RegistrationFlowMethodConfigPayload) GetAction() string {
-	if o == nil {
-		var ret string
-		return ret
-	}
-
-	return o.Action
-}
-
-// GetActionOk returns a tuple with the Action field value
-// and a boolean to check if the value has been set.
-func (o *RegistrationFlowMethodConfigPayload) GetActionOk() (*string, bool) {
-	if o == nil {
-		return nil, false
-	}
-	return &o.Action, true
-}
-
-// SetAction sets field value
-func (o *RegistrationFlowMethodConfigPayload) SetAction(v string) {
-	o.Action = v
-}
-
-// GetMessages returns the Messages field value if set, zero value otherwise.
-func (o *RegistrationFlowMethodConfigPayload) GetMessages() []UiText {
-	if o == nil || o.Messages == nil {
-		var ret []UiText
-		return ret
-	}
-	return o.Messages
-}
-
-// GetMessagesOk returns a tuple with the Messages field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-func (o *RegistrationFlowMethodConfigPayload) GetMessagesOk() ([]UiText, bool) {
-	if o == nil || o.Messages == nil {
-		return nil, false
-	}
-	return o.Messages, true
-}
-
-// HasMessages returns a boolean if a field has been set.
-func (o *RegistrationFlowMethodConfigPayload) HasMessages() bool {
-	if o != nil && o.Messages != nil {
-		return true
-	}
-
-	return false
-}
-
-// SetMessages gets a reference to the given []UiText and assigns it to the Messages field.
-func (o *RegistrationFlowMethodConfigPayload) SetMessages(v []UiText) {
-	o.Messages = v
-}
-
-// GetMethod returns the Method field value
-func (o *RegistrationFlowMethodConfigPayload) GetMethod() string {
-	if o == nil {
-		var ret string
-		return ret
-	}
-
-	return o.Method
-}
-
-// GetMethodOk returns a tuple with the Method field value
-// and a boolean to check if the value has been set.
-func (o *RegistrationFlowMethodConfigPayload) GetMethodOk() (*string, bool) {
-	if o == nil {
-		return nil, false
-	}
-	return &o.Method, true
-}
-
-// SetMethod sets field value
-func (o *RegistrationFlowMethodConfigPayload) SetMethod(v string) {
-	o.Method = v
-}
-
-// GetNodes returns the Nodes field value
-func (o *RegistrationFlowMethodConfigPayload) GetNodes() []UiNode {
-	if o == nil {
-		var ret []UiNode
-		return ret
-	}
-
-	return o.Nodes
-}
-
-// GetNodesOk returns a tuple with the Nodes field value
-// and a boolean to check if the value has been set.
-func (o *RegistrationFlowMethodConfigPayload) GetNodesOk() ([]UiNode, bool) {
-	if o == nil {
-		return nil, false
-	}
-	return o.Nodes, true
-}
-
-// SetNodes sets field value
-func (o *RegistrationFlowMethodConfigPayload) SetNodes(v []UiNode) {
-	o.Nodes = v
-}
-
-// GetProviders returns the Providers field value if set, zero value otherwise.
-func (o *RegistrationFlowMethodConfigPayload) GetProviders() [][]UiNode {
-	if o == nil || o.Providers == nil {
-		var ret [][]UiNode
-		return ret
-	}
-	return o.Providers
-}
-
-// GetProvidersOk returns a tuple with the Providers field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-func (o *RegistrationFlowMethodConfigPayload) GetProvidersOk() ([][]UiNode, bool) {
-	if o == nil || o.Providers == nil {
-		return nil, false
-	}
-	return o.Providers, true
-}
-
-// HasProviders returns a boolean if a field has been set.
-func (o *RegistrationFlowMethodConfigPayload) HasProviders() bool {
-	if o != nil && o.Providers != nil {
-		return true
-	}
-
-	return false
-}
-
-// SetProviders gets a reference to the given [][]UiNode and assigns it to the Providers field.
-func (o *RegistrationFlowMethodConfigPayload) SetProviders(v [][]UiNode) {
-	o.Providers = v
-}
-
-func (o RegistrationFlowMethodConfigPayload) MarshalJSON() ([]byte, error) {
-	toSerialize := map[string]interface{}{}
-	if true {
-		toSerialize["action"] = o.Action
-	}
-	if o.Messages != nil {
-		toSerialize["messages"] = o.Messages
-	}
-	if true {
-		toSerialize["method"] = o.Method
-	}
-	if true {
-		toSerialize["nodes"] = o.Nodes
-	}
-	if o.Providers != nil {
-		toSerialize["providers"] = o.Providers
-	}
-	return json.Marshal(toSerialize)
-}
-
-type NullableRegistrationFlowMethodConfigPayload struct {
-	value *RegistrationFlowMethodConfigPayload
-	isSet bool
-}
-
-func (v NullableRegistrationFlowMethodConfigPayload) Get() *RegistrationFlowMethodConfigPayload {
-	return v.value
-}
-
-func (v *NullableRegistrationFlowMethodConfigPayload) Set(val *RegistrationFlowMethodConfigPayload) {
-	v.value = val
-	v.isSet = true
-}
-
-func (v NullableRegistrationFlowMethodConfigPayload) IsSet() bool {
-	return v.isSet
-}
-
-func (v *NullableRegistrationFlowMethodConfigPayload) Unset() {
-	v.value = nil
-	v.isSet = false
-}
-
-func NewNullableRegistrationFlowMethodConfigPayload(val *RegistrationFlowMethodConfigPayload) *NullableRegistrationFlowMethodConfigPayload {
-	return &NullableRegistrationFlowMethodConfigPayload{value: val, isSet: true}
-}
-
-func (v NullableRegistrationFlowMethodConfigPayload) MarshalJSON() ([]byte, error) {
-	return json.Marshal(v.value)
-}
-
-func (v *NullableRegistrationFlowMethodConfigPayload) UnmarshalJSON(src []byte) error {
-	v.isSet = true
-	return json.Unmarshal(src, &v.value)
-}
diff --git a/internal/httpclient/model_settings_flow_method.go b/internal/httpclient/model_settings_flow_method.go
deleted file mode 100644
index 6136fc616..000000000
--- a/internal/httpclient/model_settings_flow_method.go
+++ /dev/null
@@ -1,137 +0,0 @@
-/*
- * Ory Kratos API
- *
- * Documentation for all public and administrative Ory Kratos APIs. Public and administrative APIs are exposed on different ports. Public APIs can face the public internet without any protection while administrative APIs should never be exposed without prior authorization. To protect the administative API port you should use something like Nginx, Ory Oathkeeper, or any other technology capable of authorizing incoming requests.
- *
- * API version: 1.0.0
- * Contact: hi@ory.sh
- */
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package kratos
-
-import (
-	"encoding/json"
-)
-
-// SettingsFlowMethod struct for SettingsFlowMethod
-type SettingsFlowMethod struct {
-	Config SettingsFlowMethodConfig `json:"config"`
-	// Method is the name of this flow method.
-	Method string `json:"method"`
-}
-
-// NewSettingsFlowMethod instantiates a new SettingsFlowMethod object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewSettingsFlowMethod(config SettingsFlowMethodConfig, method string) *SettingsFlowMethod {
-	this := SettingsFlowMethod{}
-	this.Config = config
-	this.Method = method
-	return &this
-}
-
-// NewSettingsFlowMethodWithDefaults instantiates a new SettingsFlowMethod object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewSettingsFlowMethodWithDefaults() *SettingsFlowMethod {
-	this := SettingsFlowMethod{}
-	return &this
-}
-
-// GetConfig returns the Config field value
-func (o *SettingsFlowMethod) GetConfig() SettingsFlowMethodConfig {
-	if o == nil {
-		var ret SettingsFlowMethodConfig
-		return ret
-	}
-
-	return o.Config
-}
-
-// GetConfigOk returns a tuple with the Config field value
-// and a boolean to check if the value has been set.
-func (o *SettingsFlowMethod) GetConfigOk() (*SettingsFlowMethodConfig, bool) {
-	if o == nil {
-		return nil, false
-	}
-	return &o.Config, true
-}
-
-// SetConfig sets field value
-func (o *SettingsFlowMethod) SetConfig(v SettingsFlowMethodConfig) {
-	o.Config = v
-}
-
-// GetMethod returns the Method field value
-func (o *SettingsFlowMethod) GetMethod() string {
-	if o == nil {
-		var ret string
-		return ret
-	}
-
-	return o.Method
-}
-
-// GetMethodOk returns a tuple with the Method field value
-// and a boolean to check if the value has been set.
-func (o *SettingsFlowMethod) GetMethodOk() (*string, bool) {
-	if o == nil {
-		return nil, false
-	}
-	return &o.Method, true
-}
-
-// SetMethod sets field value
-func (o *SettingsFlowMethod) SetMethod(v string) {
-	o.Method = v
-}
-
-func (o SettingsFlowMethod) MarshalJSON() ([]byte, error) {
-	toSerialize := map[string]interface{}{}
-	if true {
-		toSerialize["config"] = o.Config
-	}
-	if true {
-		toSerialize["method"] = o.Method
-	}
-	return json.Marshal(toSerialize)
-}
-
-type NullableSettingsFlowMethod struct {
-	value *SettingsFlowMethod
-	isSet bool
-}
-
-func (v NullableSettingsFlowMethod) Get() *SettingsFlowMethod {
-	return v.value
-}
-
-func (v *NullableSettingsFlowMethod) Set(val *SettingsFlowMethod) {
-	v.value = val
-	v.isSet = true
-}
-
-func (v NullableSettingsFlowMethod) IsSet() bool {
-	return v.isSet
-}
-
-func (v *NullableSettingsFlowMethod) Unset() {
-	v.value = nil
-	v.isSet = false
-}
-
-func NewNullableSettingsFlowMethod(val *SettingsFlowMethod) *NullableSettingsFlowMethod {
-	return &NullableSettingsFlowMethod{value: val, isSet: true}
-}
-
-func (v NullableSettingsFlowMethod) MarshalJSON() ([]byte, error) {
-	return json.Marshal(v.value)
-}
-
-func (v *NullableSettingsFlowMethod) UnmarshalJSON(src []byte) error {
-	v.isSet = true
-	return json.Unmarshal(src, &v.value)
-}
diff --git a/internal/httpclient/model_settings_flow_method_config.go b/internal/httpclient/model_settings_flow_method_config.go
deleted file mode 100644
index bbec4108a..000000000
--- a/internal/httpclient/model_settings_flow_method_config.go
+++ /dev/null
@@ -1,203 +0,0 @@
-/*
- * Ory Kratos API
- *
- * Documentation for all public and administrative Ory Kratos APIs. Public and administrative APIs are exposed on different ports. Public APIs can face the public internet without any protection while administrative APIs should never be exposed without prior authorization. To protect the administative API port you should use something like Nginx, Ory Oathkeeper, or any other technology capable of authorizing incoming requests.
- *
- * API version: 1.0.0
- * Contact: hi@ory.sh
- */
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package kratos
-
-import (
-	"encoding/json"
-)
-
-// SettingsFlowMethodConfig struct for SettingsFlowMethodConfig
-type SettingsFlowMethodConfig struct {
-	// Action should be used as the form action URL `<form action=\"{{ .Action }}\" method=\"post\">`.
-	Action   string   `json:"action"`
-	Messages []UiText `json:"messages,omitempty"`
-	// Method is the form method (e.g. POST)
-	Method string   `json:"method"`
-	Nodes  []UiNode `json:"nodes"`
-}
-
-// NewSettingsFlowMethodConfig instantiates a new SettingsFlowMethodConfig object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewSettingsFlowMethodConfig(action string, method string, nodes []UiNode) *SettingsFlowMethodConfig {
-	this := SettingsFlowMethodConfig{}
-	this.Action = action
-	this.Method = method
-	this.Nodes = nodes
-	return &this
-}
-
-// NewSettingsFlowMethodConfigWithDefaults instantiates a new SettingsFlowMethodConfig object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewSettingsFlowMethodConfigWithDefaults() *SettingsFlowMethodConfig {
-	this := SettingsFlowMethodConfig{}
-	return &this
-}
-
-// GetAction returns the Action field value
-func (o *SettingsFlowMethodConfig) GetAction() string {
-	if o == nil {
-		var ret string
-		return ret
-	}
-
-	return o.Action
-}
-
-// GetActionOk returns a tuple with the Action field value
-// and a boolean to check if the value has been set.
-func (o *SettingsFlowMethodConfig) GetActionOk() (*string, bool) {
-	if o == nil {
-		return nil, false
-	}
-	return &o.Action, true
-}
-
-// SetAction sets field value
-func (o *SettingsFlowMethodConfig) SetAction(v string) {
-	o.Action = v
-}
-
-// GetMessages returns the Messages field value if set, zero value otherwise.
-func (o *SettingsFlowMethodConfig) GetMessages() []UiText {
-	if o == nil || o.Messages == nil {
-		var ret []UiText
-		return ret
-	}
-	return o.Messages
-}
-
-// GetMessagesOk returns a tuple with the Messages field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-func (o *SettingsFlowMethodConfig) GetMessagesOk() ([]UiText, bool) {
-	if o == nil || o.Messages == nil {
-		return nil, false
-	}
-	return o.Messages, true
-}
-
-// HasMessages returns a boolean if a field has been set.
-func (o *SettingsFlowMethodConfig) HasMessages() bool {
-	if o != nil && o.Messages != nil {
-		return true
-	}
-
-	return false
-}
-
-// SetMessages gets a reference to the given []UiText and assigns it to the Messages field.
-func (o *SettingsFlowMethodConfig) SetMessages(v []UiText) {
-	o.Messages = v
-}
-
-// GetMethod returns the Method field value
-func (o *SettingsFlowMethodConfig) GetMethod() string {
-	if o == nil {
-		var ret string
-		return ret
-	}
-
-	return o.Method
-}
-
-// GetMethodOk returns a tuple with the Method field value
-// and a boolean to check if the value has been set.
-func (o *SettingsFlowMethodConfig) GetMethodOk() (*string, bool) {
-	if o == nil {
-		return nil, false
-	}
-	return &o.Method, true
-}
-
-// SetMethod sets field value
-func (o *SettingsFlowMethodConfig) SetMethod(v string) {
-	o.Method = v
-}
-
-// GetNodes returns the Nodes field value
-func (o *SettingsFlowMethodConfig) GetNodes() []UiNode {
-	if o == nil {
-		var ret []UiNode
-		return ret
-	}
-
-	return o.Nodes
-}
-
-// GetNodesOk returns a tuple with the Nodes field value
-// and a boolean to check if the value has been set.
-func (o *SettingsFlowMethodConfig) GetNodesOk() ([]UiNode, bool) {
-	if o == nil {
-		return nil, false
-	}
-	return o.Nodes, true
-}
-
-// SetNodes sets field value
-func (o *SettingsFlowMethodConfig) SetNodes(v []UiNode) {
-	o.Nodes = v
-}
-
-func (o SettingsFlowMethodConfig) MarshalJSON() ([]byte, error) {
-	toSerialize := map[string]interface{}{}
-	if true {
-		toSerialize["action"] = o.Action
-	}
-	if o.Messages != nil {
-		toSerialize["messages"] = o.Messages
-	}
-	if true {
-		toSerialize["method"] = o.Method
-	}
-	if true {
-		toSerialize["nodes"] = o.Nodes
-	}
-	return json.Marshal(toSerialize)
-}
-
-type NullableSettingsFlowMethodConfig struct {
-	value *SettingsFlowMethodConfig
-	isSet bool
-}
-
-func (v NullableSettingsFlowMethodConfig) Get() *SettingsFlowMethodConfig {
-	return v.value
-}
-
-func (v *NullableSettingsFlowMethodConfig) Set(val *SettingsFlowMethodConfig) {
-	v.value = val
-	v.isSet = true
-}
-
-func (v NullableSettingsFlowMethodConfig) IsSet() bool {
-	return v.isSet
-}
-
-func (v *NullableSettingsFlowMethodConfig) Unset() {
-	v.value = nil
-	v.isSet = false
-}
-
-func NewNullableSettingsFlowMethodConfig(val *SettingsFlowMethodConfig) *NullableSettingsFlowMethodConfig {
-	return &NullableSettingsFlowMethodConfig{value: val, isSet: true}
-}
-
-func (v NullableSettingsFlowMethodConfig) MarshalJSON() ([]byte, error) {
-	return json.Marshal(v.value)
-}
-
-func (v *NullableSettingsFlowMethodConfig) UnmarshalJSON(src []byte) error {
-	v.isSet = true
-	return json.Unmarshal(src, &v.value)
-}
diff --git a/internal/httpclient/model_settings_flow_method_config_payload.go b/internal/httpclient/model_settings_flow_method_config_payload.go
deleted file mode 100644
index 725ddbeb7..000000000
--- a/internal/httpclient/model_settings_flow_method_config_payload.go
+++ /dev/null
@@ -1,203 +0,0 @@
-/*
- * Ory Kratos API
- *
- * Documentation for all public and administrative Ory Kratos APIs. Public and administrative APIs are exposed on different ports. Public APIs can face the public internet without any protection while administrative APIs should never be exposed without prior authorization. To protect the administative API port you should use something like Nginx, Ory Oathkeeper, or any other technology capable of authorizing incoming requests.
- *
- * API version: 1.0.0
- * Contact: hi@ory.sh
- */
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package kratos
-
-import (
-	"encoding/json"
-)
-
-// SettingsFlowMethodConfigPayload struct for SettingsFlowMethodConfigPayload
-type SettingsFlowMethodConfigPayload struct {
-	// Action should be used as the form action URL `<form action=\"{{ .Action }}\" method=\"post\">`.
-	Action   string   `json:"action"`
-	Messages []UiText `json:"messages,omitempty"`
-	// Method is the form method (e.g. POST)
-	Method string   `json:"method"`
-	Nodes  []UiNode `json:"nodes"`
-}
-
-// NewSettingsFlowMethodConfigPayload instantiates a new SettingsFlowMethodConfigPayload object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewSettingsFlowMethodConfigPayload(action string, method string, nodes []UiNode) *SettingsFlowMethodConfigPayload {
-	this := SettingsFlowMethodConfigPayload{}
-	this.Action = action
-	this.Method = method
-	this.Nodes = nodes
-	return &this
-}
-
-// NewSettingsFlowMethodConfigPayloadWithDefaults instantiates a new SettingsFlowMethodConfigPayload object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewSettingsFlowMethodConfigPayloadWithDefaults() *SettingsFlowMethodConfigPayload {
-	this := SettingsFlowMethodConfigPayload{}
-	return &this
-}
-
-// GetAction returns the Action field value
-func (o *SettingsFlowMethodConfigPayload) GetAction() string {
-	if o == nil {
-		var ret string
-		return ret
-	}
-
-	return o.Action
-}
-
-// GetActionOk returns a tuple with the Action field value
-// and a boolean to check if the value has been set.
-func (o *SettingsFlowMethodConfigPayload) GetActionOk() (*string, bool) {
-	if o == nil {
-		return nil, false
-	}
-	return &o.Action, true
-}
-
-// SetAction sets field value
-func (o *SettingsFlowMethodConfigPayload) SetAction(v string) {
-	o.Action = v
-}
-
-// GetMessages returns the Messages field value if set, zero value otherwise.
-func (o *SettingsFlowMethodConfigPayload) GetMessages() []UiText {
-	if o == nil || o.Messages == nil {
-		var ret []UiText
-		return ret
-	}
-	return o.Messages
-}
-
-// GetMessagesOk returns a tuple with the Messages field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-func (o *SettingsFlowMethodConfigPayload) GetMessagesOk() ([]UiText, bool) {
-	if o == nil || o.Messages == nil {
-		return nil, false
-	}
-	return o.Messages, true
-}
-
-// HasMessages returns a boolean if a field has been set.
-func (o *SettingsFlowMethodConfigPayload) HasMessages() bool {
-	if o != nil && o.Messages != nil {
-		return true
-	}
-
-	return false
-}
-
-// SetMessages gets a reference to the given []UiText and assigns it to the Messages field.
-func (o *SettingsFlowMethodConfigPayload) SetMessages(v []UiText) {
-	o.Messages = v
-}
-
-// GetMethod returns the Method field value
-func (o *SettingsFlowMethodConfigPayload) GetMethod() string {
-	if o == nil {
-		var ret string
-		return ret
-	}
-
-	return o.Method
-}
-
-// GetMethodOk returns a tuple with the Method field value
-// and a boolean to check if the value has been set.
-func (o *SettingsFlowMethodConfigPayload) GetMethodOk() (*string, bool) {
-	if o == nil {
-		return nil, false
-	}
-	return &o.Method, true
-}
-
-// SetMethod sets field value
-func (o *SettingsFlowMethodConfigPayload) SetMethod(v string) {
-	o.Method = v
-}
-
-// GetNodes returns the Nodes field value
-func (o *SettingsFlowMethodConfigPayload) GetNodes() []UiNode {
-	if o == nil {
-		var ret []UiNode
-		return ret
-	}
-
-	return o.Nodes
-}
-
-// GetNodesOk returns a tuple with the Nodes field value
-// and a boolean to check if the value has been set.
-func (o *SettingsFlowMethodConfigPayload) GetNodesOk() ([]UiNode, bool) {
-	if o == nil {
-		return nil, false
-	}
-	return o.Nodes, true
-}
-
-// SetNodes sets field value
-func (o *SettingsFlowMethodConfigPayload) SetNodes(v []UiNode) {
-	o.Nodes = v
-}
-
-func (o SettingsFlowMethodConfigPayload) MarshalJSON() ([]byte, error) {
-	toSerialize := map[string]interface{}{}
-	if true {
-		toSerialize["action"] = o.Action
-	}
-	if o.Messages != nil {
-		toSerialize["messages"] = o.Messages
-	}
-	if true {
-		toSerialize["method"] = o.Method
-	}
-	if true {
-		toSerialize["nodes"] = o.Nodes
-	}
-	return json.Marshal(toSerialize)
-}
-
-type NullableSettingsFlowMethodConfigPayload struct {
-	value *SettingsFlowMethodConfigPayload
-	isSet bool
-}
-
-func (v NullableSettingsFlowMethodConfigPayload) Get() *SettingsFlowMethodConfigPayload {
-	return v.value
-}
-
-func (v *NullableSettingsFlowMethodConfigPayload) Set(val *SettingsFlowMethodConfigPayload) {
-	v.value = val
-	v.isSet = true
-}
-
-func (v NullableSettingsFlowMethodConfigPayload) IsSet() bool {
-	return v.isSet
-}
-
-func (v *NullableSettingsFlowMethodConfigPayload) Unset() {
-	v.value = nil
-	v.isSet = false
-}
-
-func NewNullableSettingsFlowMethodConfigPayload(val *SettingsFlowMethodConfigPayload) *NullableSettingsFlowMethodConfigPayload {
-	return &NullableSettingsFlowMethodConfigPayload{value: val, isSet: true}
-}
-
-func (v NullableSettingsFlowMethodConfigPayload) MarshalJSON() ([]byte, error) {
-	return json.Marshal(v.value)
-}
-
-func (v *NullableSettingsFlowMethodConfigPayload) UnmarshalJSON(src []byte) error {
-	v.isSet = true
-	return json.Unmarshal(src, &v.value)
-}
diff --git a/internal/httpclient/model_submit_self_service_browser_settings_profile_strategy_flow.go b/internal/httpclient/model_submit_self_service_browser_settings_profile_strategy_flow.go
deleted file mode 100644
index 4e961f586..000000000
--- a/internal/httpclient/model_submit_self_service_browser_settings_profile_strategy_flow.go
+++ /dev/null
@@ -1,182 +0,0 @@
-/*
- * Ory Kratos API
- *
- * Documentation for all public and administrative Ory Kratos APIs. Public and administrative APIs are exposed on different ports. Public APIs can face the public internet without any protection while administrative APIs should never be exposed without prior authorization. To protect the administative API port you should use something like Nginx, Ory Oathkeeper, or any other technology capable of authorizing incoming requests.
- *
- * API version: 1.0.0
- * Contact: hi@ory.sh
- */
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package kratos
-
-import (
-	"encoding/json"
-)
-
-// SubmitSelfServiceBrowserSettingsProfileStrategyFlow nolint:deadcode,unused
-type SubmitSelfServiceBrowserSettingsProfileStrategyFlow struct {
-	// The Anti-CSRF Token  This token is only required when performing browser flows.
-	CsrfToken *string `json:"csrf_token,omitempty"`
-	// Method  Should be set to profile when trying to update a profile.  type: string
-	Method *string `json:"method,omitempty"`
-	// Traits contains all of the identity's traits.
-	Traits map[string]interface{} `json:"traits"`
-}
-
-// NewSubmitSelfServiceBrowserSettingsProfileStrategyFlow instantiates a new SubmitSelfServiceBrowserSettingsProfileStrategyFlow object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewSubmitSelfServiceBrowserSettingsProfileStrategyFlow(traits map[string]interface{}) *SubmitSelfServiceBrowserSettingsProfileStrategyFlow {
-	this := SubmitSelfServiceBrowserSettingsProfileStrategyFlow{}
-	this.Traits = traits
-	return &this
-}
-
-// NewSubmitSelfServiceBrowserSettingsProfileStrategyFlowWithDefaults instantiates a new SubmitSelfServiceBrowserSettingsProfileStrategyFlow object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewSubmitSelfServiceBrowserSettingsProfileStrategyFlowWithDefaults() *SubmitSelfServiceBrowserSettingsProfileStrategyFlow {
-	this := SubmitSelfServiceBrowserSettingsProfileStrategyFlow{}
-	return &this
-}
-
-// GetCsrfToken returns the CsrfToken field value if set, zero value otherwise.
-func (o *SubmitSelfServiceBrowserSettingsProfileStrategyFlow) GetCsrfToken() string {
-	if o == nil || o.CsrfToken == nil {
-		var ret string
-		return ret
-	}
-	return *o.CsrfToken
-}
-
-// GetCsrfTokenOk returns a tuple with the CsrfToken field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-func (o *SubmitSelfServiceBrowserSettingsProfileStrategyFlow) GetCsrfTokenOk() (*string, bool) {
-	if o == nil || o.CsrfToken == nil {
-		return nil, false
-	}
-	return o.CsrfToken, true
-}
-
-// HasCsrfToken returns a boolean if a field has been set.
-func (o *SubmitSelfServiceBrowserSettingsProfileStrategyFlow) HasCsrfToken() bool {
-	if o != nil && o.CsrfToken != nil {
-		return true
-	}
-
-	return false
-}
-
-// SetCsrfToken gets a reference to the given string and assigns it to the CsrfToken field.
-func (o *SubmitSelfServiceBrowserSettingsProfileStrategyFlow) SetCsrfToken(v string) {
-	o.CsrfToken = &v
-}
-
-// GetMethod returns the Method field value if set, zero value otherwise.
-func (o *SubmitSelfServiceBrowserSettingsProfileStrategyFlow) GetMethod() string {
-	if o == nil || o.Method == nil {
-		var ret string
-		return ret
-	}
-	return *o.Method
-}
-
-// GetMethodOk returns a tuple with the Method field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-func (o *SubmitSelfServiceBrowserSettingsProfileStrategyFlow) GetMethodOk() (*string, bool) {
-	if o == nil || o.Method == nil {
-		return nil, false
-	}
-	return o.Method, true
-}
-
-// HasMethod returns a boolean if a field has been set.
-func (o *SubmitSelfServiceBrowserSettingsProfileStrategyFlow) HasMethod() bool {
-	if o != nil && o.Method != nil {
-		return true
-	}
-
-	return false
-}
-
-// SetMethod gets a reference to the given string and assigns it to the Method field.
-func (o *SubmitSelfServiceBrowserSettingsProfileStrategyFlow) SetMethod(v string) {
-	o.Method = &v
-}
-
-// GetTraits returns the Traits field value
-func (o *SubmitSelfServiceBrowserSettingsProfileStrategyFlow) GetTraits() map[string]interface{} {
-	if o == nil {
-		var ret map[string]interface{}
-		return ret
-	}
-
-	return o.Traits
-}
-
-// GetTraitsOk returns a tuple with the Traits field value
-// and a boolean to check if the value has been set.
-func (o *SubmitSelfServiceBrowserSettingsProfileStrategyFlow) GetTraitsOk() (map[string]interface{}, bool) {
-	if o == nil {
-		return nil, false
-	}
-	return o.Traits, true
-}
-
-// SetTraits sets field value
-func (o *SubmitSelfServiceBrowserSettingsProfileStrategyFlow) SetTraits(v map[string]interface{}) {
-	o.Traits = v
-}
-
-func (o SubmitSelfServiceBrowserSettingsProfileStrategyFlow) MarshalJSON() ([]byte, error) {
-	toSerialize := map[string]interface{}{}
-	if o.CsrfToken != nil {
-		toSerialize["csrf_token"] = o.CsrfToken
-	}
-	if o.Method != nil {
-		toSerialize["method"] = o.Method
-	}
-	if true {
-		toSerialize["traits"] = o.Traits
-	}
-	return json.Marshal(toSerialize)
-}
-
-type NullableSubmitSelfServiceBrowserSettingsProfileStrategyFlow struct {
-	value *SubmitSelfServiceBrowserSettingsProfileStrategyFlow
-	isSet bool
-}
-
-func (v NullableSubmitSelfServiceBrowserSettingsProfileStrategyFlow) Get() *SubmitSelfServiceBrowserSettingsProfileStrategyFlow {
-	return v.value
-}
-
-func (v *NullableSubmitSelfServiceBrowserSettingsProfileStrategyFlow) Set(val *SubmitSelfServiceBrowserSettingsProfileStrategyFlow) {
-	v.value = val
-	v.isSet = true
-}
-
-func (v NullableSubmitSelfServiceBrowserSettingsProfileStrategyFlow) IsSet() bool {
-	return v.isSet
-}
-
-func (v *NullableSubmitSelfServiceBrowserSettingsProfileStrategyFlow) Unset() {
-	v.value = nil
-	v.isSet = false
-}
-
-func NewNullableSubmitSelfServiceBrowserSettingsProfileStrategyFlow(val *SubmitSelfServiceBrowserSettingsProfileStrategyFlow) *NullableSubmitSelfServiceBrowserSettingsProfileStrategyFlow {
-	return &NullableSubmitSelfServiceBrowserSettingsProfileStrategyFlow{value: val, isSet: true}
-}
-
-func (v NullableSubmitSelfServiceBrowserSettingsProfileStrategyFlow) MarshalJSON() ([]byte, error) {
-	return json.Marshal(v.value)
-}
-
-func (v *NullableSubmitSelfServiceBrowserSettingsProfileStrategyFlow) UnmarshalJSON(src []byte) error {
-	v.isSet = true
-	return json.Unmarshal(src, &v.value)
-}
diff --git a/internal/httpclient/model_submit_self_service_login_flow_payload.go b/internal/httpclient/model_submit_self_service_login_flow_payload.go
deleted file mode 100644
index e43c09cf8..000000000
--- a/internal/httpclient/model_submit_self_service_login_flow_payload.go
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
- * Ory Kratos API
- *
- * Documentation for all public and administrative Ory Kratos APIs. Public and administrative APIs are exposed on different ports. Public APIs can face the public internet without any protection while administrative APIs should never be exposed without prior authorization. To protect the administative API port you should use something like Nginx, Ory Oathkeeper, or any other technology capable of authorizing incoming requests.
- *
- * API version: 1.0.0
- * Contact: hi@ory.sh
- */
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package kratos
-
-import (
-	"encoding/json"
-	"fmt"
-)
-
-// SubmitSelfServiceLoginFlowPayload - struct for SubmitSelfServiceLoginFlowPayload
-type SubmitSelfServiceLoginFlowPayload struct {
-	SubmitSelfServiceLoginFlowWithPasswordMethod *SubmitSelfServiceLoginFlowWithPasswordMethod
-}
-
-// SubmitSelfServiceLoginFlowWithPasswordMethodAsSubmitSelfServiceLoginFlowPayload is a convenience function that returns SubmitSelfServiceLoginFlowWithPasswordMethod wrapped in SubmitSelfServiceLoginFlowPayload
-func SubmitSelfServiceLoginFlowWithPasswordMethodAsSubmitSelfServiceLoginFlowPayload(v *SubmitSelfServiceLoginFlowWithPasswordMethod) SubmitSelfServiceLoginFlowPayload {
-	return SubmitSelfServiceLoginFlowPayload{
-		SubmitSelfServiceLoginFlowWithPasswordMethod: v,
-	}
-}
-
-// Unmarshal JSON data into one of the pointers in the struct
-func (dst *SubmitSelfServiceLoginFlowPayload) UnmarshalJSON(data []byte) error {
-	var err error
-	match := 0
-	// try to unmarshal data into SubmitSelfServiceLoginFlowWithPasswordMethod
-	err = newStrictDecoder(data).Decode(&dst.SubmitSelfServiceLoginFlowWithPasswordMethod)
-	if err == nil {
-		jsonSubmitSelfServiceLoginFlowWithPasswordMethod, _ := json.Marshal(dst.SubmitSelfServiceLoginFlowWithPasswordMethod)
-		if string(jsonSubmitSelfServiceLoginFlowWithPasswordMethod) == "{}" { // empty struct
-			dst.SubmitSelfServiceLoginFlowWithPasswordMethod = nil
-		} else {
-			match++
-		}
-	} else {
-		dst.SubmitSelfServiceLoginFlowWithPasswordMethod = nil
-	}
-
-	if match > 1 { // more than 1 match
-		// reset to nil
-		dst.SubmitSelfServiceLoginFlowWithPasswordMethod = nil
-
-		return fmt.Errorf("Data matches more than one schema in oneOf(SubmitSelfServiceLoginFlowPayload)")
-	} else if match == 1 {
-		return nil // exactly one match
-	} else { // no match
-		return fmt.Errorf("Data failed to match schemas in oneOf(SubmitSelfServiceLoginFlowPayload)")
-	}
-}
-
-// Marshal data from the first non-nil pointers in the struct to JSON
-func (src SubmitSelfServiceLoginFlowPayload) MarshalJSON() ([]byte, error) {
-	if src.SubmitSelfServiceLoginFlowWithPasswordMethod != nil {
-		return json.Marshal(&src.SubmitSelfServiceLoginFlowWithPasswordMethod)
-	}
-
-	return nil, nil // no data in oneOf schemas
-}
-
-// Get the actual instance
-func (obj *SubmitSelfServiceLoginFlowPayload) GetActualInstance() interface{} {
-	if obj == nil {
-		return nil
-	}
-	if obj.SubmitSelfServiceLoginFlowWithPasswordMethod != nil {
-		return obj.SubmitSelfServiceLoginFlowWithPasswordMethod
-	}
-
-	// all schemas are nil
-	return nil
-}
-
-type NullableSubmitSelfServiceLoginFlowPayload struct {
-	value *SubmitSelfServiceLoginFlowPayload
-	isSet bool
-}
-
-func (v NullableSubmitSelfServiceLoginFlowPayload) Get() *SubmitSelfServiceLoginFlowPayload {
-	return v.value
-}
-
-func (v *NullableSubmitSelfServiceLoginFlowPayload) Set(val *SubmitSelfServiceLoginFlowPayload) {
-	v.value = val
-	v.isSet = true
-}
-
-func (v NullableSubmitSelfServiceLoginFlowPayload) IsSet() bool {
-	return v.isSet
-}
-
-func (v *NullableSubmitSelfServiceLoginFlowPayload) Unset() {
-	v.value = nil
-	v.isSet = false
-}
-
-func NewNullableSubmitSelfServiceLoginFlowPayload(val *SubmitSelfServiceLoginFlowPayload) *NullableSubmitSelfServiceLoginFlowPayload {
-	return &NullableSubmitSelfServiceLoginFlowPayload{value: val, isSet: true}
-}
-
-func (v NullableSubmitSelfServiceLoginFlowPayload) MarshalJSON() ([]byte, error) {
-	return json.Marshal(v.value)
-}
-
-func (v *NullableSubmitSelfServiceLoginFlowPayload) UnmarshalJSON(src []byte) error {
-	v.isSet = true
-	return json.Unmarshal(src, &v.value)
-}
diff --git a/internal/httpclient/model_submit_self_service_registration_flow_payload.go b/internal/httpclient/model_submit_self_service_registration_flow_payload.go
deleted file mode 100644
index 78248569e..000000000
--- a/internal/httpclient/model_submit_self_service_registration_flow_payload.go
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
- * Ory Kratos API
- *
- * Documentation for all public and administrative Ory Kratos APIs. Public and administrative APIs are exposed on different ports. Public APIs can face the public internet without any protection while administrative APIs should never be exposed without prior authorization. To protect the administative API port you should use something like Nginx, Ory Oathkeeper, or any other technology capable of authorizing incoming requests.
- *
- * API version: 1.0.0
- * Contact: hi@ory.sh
- */
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package kratos
-
-import (
-	"encoding/json"
-	"fmt"
-)
-
-// SubmitSelfServiceRegistrationFlowPayload - struct for SubmitSelfServiceRegistrationFlowPayload
-type SubmitSelfServiceRegistrationFlowPayload struct {
-	SubmitSelfServiceRegistrationFlowWithPasswordMethod *SubmitSelfServiceRegistrationFlowWithPasswordMethod
-}
-
-// SubmitSelfServiceRegistrationFlowWithPasswordMethodAsSubmitSelfServiceRegistrationFlowPayload is a convenience function that returns SubmitSelfServiceRegistrationFlowWithPasswordMethod wrapped in SubmitSelfServiceRegistrationFlowPayload
-func SubmitSelfServiceRegistrationFlowWithPasswordMethodAsSubmitSelfServiceRegistrationFlowPayload(v *SubmitSelfServiceRegistrationFlowWithPasswordMethod) SubmitSelfServiceRegistrationFlowPayload {
-	return SubmitSelfServiceRegistrationFlowPayload{
-		SubmitSelfServiceRegistrationFlowWithPasswordMethod: v,
-	}
-}
-
-// Unmarshal JSON data into one of the pointers in the struct
-func (dst *SubmitSelfServiceRegistrationFlowPayload) UnmarshalJSON(data []byte) error {
-	var err error
-	match := 0
-	// try to unmarshal data into SubmitSelfServiceRegistrationFlowWithPasswordMethod
-	err = newStrictDecoder(data).Decode(&dst.SubmitSelfServiceRegistrationFlowWithPasswordMethod)
-	if err == nil {
-		jsonSubmitSelfServiceRegistrationFlowWithPasswordMethod, _ := json.Marshal(dst.SubmitSelfServiceRegistrationFlowWithPasswordMethod)
-		if string(jsonSubmitSelfServiceRegistrationFlowWithPasswordMethod) == "{}" { // empty struct
-			dst.SubmitSelfServiceRegistrationFlowWithPasswordMethod = nil
-		} else {
-			match++
-		}
-	} else {
-		dst.SubmitSelfServiceRegistrationFlowWithPasswordMethod = nil
-	}
-
-	if match > 1 { // more than 1 match
-		// reset to nil
-		dst.SubmitSelfServiceRegistrationFlowWithPasswordMethod = nil
-
-		return fmt.Errorf("Data matches more than one schema in oneOf(SubmitSelfServiceRegistrationFlowPayload)")
-	} else if match == 1 {
-		return nil // exactly one match
-	} else { // no match
-		return fmt.Errorf("Data failed to match schemas in oneOf(SubmitSelfServiceRegistrationFlowPayload)")
-	}
-}
-
-// Marshal data from the first non-nil pointers in the struct to JSON
-func (src SubmitSelfServiceRegistrationFlowPayload) MarshalJSON() ([]byte, error) {
-	if src.SubmitSelfServiceRegistrationFlowWithPasswordMethod != nil {
-		return json.Marshal(&src.SubmitSelfServiceRegistrationFlowWithPasswordMethod)
-	}
-
-	return nil, nil // no data in oneOf schemas
-}
-
-// Get the actual instance
-func (obj *SubmitSelfServiceRegistrationFlowPayload) GetActualInstance() interface{} {
-	if obj == nil {
-		return nil
-	}
-	if obj.SubmitSelfServiceRegistrationFlowWithPasswordMethod != nil {
-		return obj.SubmitSelfServiceRegistrationFlowWithPasswordMethod
-	}
-
-	// all schemas are nil
-	return nil
-}
-
-type NullableSubmitSelfServiceRegistrationFlowPayload struct {
-	value *SubmitSelfServiceRegistrationFlowPayload
-	isSet bool
-}
-
-func (v NullableSubmitSelfServiceRegistrationFlowPayload) Get() *SubmitSelfServiceRegistrationFlowPayload {
-	return v.value
-}
-
-func (v *NullableSubmitSelfServiceRegistrationFlowPayload) Set(val *SubmitSelfServiceRegistrationFlowPayload) {
-	v.value = val
-	v.isSet = true
-}
-
-func (v NullableSubmitSelfServiceRegistrationFlowPayload) IsSet() bool {
-	return v.isSet
-}
-
-func (v *NullableSubmitSelfServiceRegistrationFlowPayload) Unset() {
-	v.value = nil
-	v.isSet = false
-}
-
-func NewNullableSubmitSelfServiceRegistrationFlowPayload(val *SubmitSelfServiceRegistrationFlowPayload) *NullableSubmitSelfServiceRegistrationFlowPayload {
-	return &NullableSubmitSelfServiceRegistrationFlowPayload{value: val, isSet: true}
-}
-
-func (v NullableSubmitSelfServiceRegistrationFlowPayload) MarshalJSON() ([]byte, error) {
-	return json.Marshal(v.value)
-}
-
-func (v *NullableSubmitSelfServiceRegistrationFlowPayload) UnmarshalJSON(src []byte) error {
-	v.isSet = true
-	return json.Unmarshal(src, &v.value)
-}
diff --git a/internal/httpclient/model_verifiable_address.go b/internal/httpclient/model_verifiable_address.go
deleted file mode 100644
index f5cfd00ad..000000000
--- a/internal/httpclient/model_verifiable_address.go
+++ /dev/null
@@ -1,260 +0,0 @@
-/*
- * Ory Kratos API
- *
- * Documentation for all public and administrative Ory Kratos APIs. Public and administrative APIs are exposed on different ports. Public APIs can face the public internet without any protection while administrative APIs should never be exposed without prior authorization. To protect the administative API port you should use something like Nginx, Ory Oathkeeper, or any other technology capable of authorizing incoming requests.
- *
- * API version: 1.0.0
- * Contact: hi@ory.sh
- */
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package kratos
-
-import (
-	"encoding/json"
-	"time"
-)
-
-// VerifiableAddress struct for VerifiableAddress
-type VerifiableAddress struct {
-	Id         string     `json:"id"`
-	Status     string     `json:"status"`
-	Value      string     `json:"value"`
-	Verified   bool       `json:"verified"`
-	VerifiedAt *time.Time `json:"verified_at,omitempty"`
-	Via        string     `json:"via"`
-}
-
-// NewVerifiableAddress instantiates a new VerifiableAddress object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewVerifiableAddress(id string, status string, value string, verified bool, via string) *VerifiableAddress {
-	this := VerifiableAddress{}
-	this.Id = id
-	this.Status = status
-	this.Value = value
-	this.Verified = verified
-	this.Via = via
-	return &this
-}
-
-// NewVerifiableAddressWithDefaults instantiates a new VerifiableAddress object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewVerifiableAddressWithDefaults() *VerifiableAddress {
-	this := VerifiableAddress{}
-	return &this
-}
-
-// GetId returns the Id field value
-func (o *VerifiableAddress) GetId() string {
-	if o == nil {
-		var ret string
-		return ret
-	}
-
-	return o.Id
-}
-
-// GetIdOk returns a tuple with the Id field value
-// and a boolean to check if the value has been set.
-func (o *VerifiableAddress) GetIdOk() (*string, bool) {
-	if o == nil {
-		return nil, false
-	}
-	return &o.Id, true
-}
-
-// SetId sets field value
-func (o *VerifiableAddress) SetId(v string) {
-	o.Id = v
-}
-
-// GetStatus returns the Status field value
-func (o *VerifiableAddress) GetStatus() string {
-	if o == nil {
-		var ret string
-		return ret
-	}
-
-	return o.Status
-}
-
-// GetStatusOk returns a tuple with the Status field value
-// and a boolean to check if the value has been set.
-func (o *VerifiableAddress) GetStatusOk() (*string, bool) {
-	if o == nil {
-		return nil, false
-	}
-	return &o.Status, true
-}
-
-// SetStatus sets field value
-func (o *VerifiableAddress) SetStatus(v string) {
-	o.Status = v
-}
-
-// GetValue returns the Value field value
-func (o *VerifiableAddress) GetValue() string {
-	if o == nil {
-		var ret string
-		return ret
-	}
-
-	return o.Value
-}
-
-// GetValueOk returns a tuple with the Value field value
-// and a boolean to check if the value has been set.
-func (o *VerifiableAddress) GetValueOk() (*string, bool) {
-	if o == nil {
-		return nil, false
-	}
-	return &o.Value, true
-}
-
-// SetValue sets field value
-func (o *VerifiableAddress) SetValue(v string) {
-	o.Value = v
-}
-
-// GetVerified returns the Verified field value
-func (o *VerifiableAddress) GetVerified() bool {
-	if o == nil {
-		var ret bool
-		return ret
-	}
-
-	return o.Verified
-}
-
-// GetVerifiedOk returns a tuple with the Verified field value
-// and a boolean to check if the value has been set.
-func (o *VerifiableAddress) GetVerifiedOk() (*bool, bool) {
-	if o == nil {
-		return nil, false
-	}
-	return &o.Verified, true
-}
-
-// SetVerified sets field value
-func (o *VerifiableAddress) SetVerified(v bool) {
-	o.Verified = v
-}
-
-// GetVerifiedAt returns the VerifiedAt field value if set, zero value otherwise.
-func (o *VerifiableAddress) GetVerifiedAt() time.Time {
-	if o == nil || o.VerifiedAt == nil {
-		var ret time.Time
-		return ret
-	}
-	return *o.VerifiedAt
-}
-
-// GetVerifiedAtOk returns a tuple with the VerifiedAt field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-func (o *VerifiableAddress) GetVerifiedAtOk() (*time.Time, bool) {
-	if o == nil || o.VerifiedAt == nil {
-		return nil, false
-	}
-	return o.VerifiedAt, true
-}
-
-// HasVerifiedAt returns a boolean if a field has been set.
-func (o *VerifiableAddress) HasVerifiedAt() bool {
-	if o != nil && o.VerifiedAt != nil {
-		return true
-	}
-
-	return false
-}
-
-// SetVerifiedAt gets a reference to the given time.Time and assigns it to the VerifiedAt field.
-func (o *VerifiableAddress) SetVerifiedAt(v time.Time) {
-	o.VerifiedAt = &v
-}
-
-// GetVia returns the Via field value
-func (o *VerifiableAddress) GetVia() string {
-	if o == nil {
-		var ret string
-		return ret
-	}
-
-	return o.Via
-}
-
-// GetViaOk returns a tuple with the Via field value
-// and a boolean to check if the value has been set.
-func (o *VerifiableAddress) GetViaOk() (*string, bool) {
-	if o == nil {
-		return nil, false
-	}
-	return &o.Via, true
-}
-
-// SetVia sets field value
-func (o *VerifiableAddress) SetVia(v string) {
-	o.Via = v
-}
-
-func (o VerifiableAddress) MarshalJSON() ([]byte, error) {
-	toSerialize := map[string]interface{}{}
-	if true {
-		toSerialize["id"] = o.Id
-	}
-	if true {
-		toSerialize["status"] = o.Status
-	}
-	if true {
-		toSerialize["value"] = o.Value
-	}
-	if true {
-		toSerialize["verified"] = o.Verified
-	}
-	if o.VerifiedAt != nil {
-		toSerialize["verified_at"] = o.VerifiedAt
-	}
-	if true {
-		toSerialize["via"] = o.Via
-	}
-	return json.Marshal(toSerialize)
-}
-
-type NullableVerifiableAddress struct {
-	value *VerifiableAddress
-	isSet bool
-}
-
-func (v NullableVerifiableAddress) Get() *VerifiableAddress {
-	return v.value
-}
-
-func (v *NullableVerifiableAddress) Set(val *VerifiableAddress) {
-	v.value = val
-	v.isSet = true
-}
-
-func (v NullableVerifiableAddress) IsSet() bool {
-	return v.isSet
-}
-
-func (v *NullableVerifiableAddress) Unset() {
-	v.value = nil
-	v.isSet = false
-}
-
-func NewNullableVerifiableAddress(val *VerifiableAddress) *NullableVerifiableAddress {
-	return &NullableVerifiableAddress{value: val, isSet: true}
-}
-
-func (v NullableVerifiableAddress) MarshalJSON() ([]byte, error) {
-	return json.Marshal(v.value)
-}
-
-func (v *NullableVerifiableAddress) UnmarshalJSON(src []byte) error {
-	v.isSet = true
-	return json.Unmarshal(src, &v.value)
-}
diff --git a/internal/httpclient/model_verification_flow_method.go b/internal/httpclient/model_verification_flow_method.go
deleted file mode 100644
index 0b2ca1a42..000000000
--- a/internal/httpclient/model_verification_flow_method.go
+++ /dev/null
@@ -1,137 +0,0 @@
-/*
- * Ory Kratos API
- *
- * Documentation for all public and administrative Ory Kratos APIs. Public and administrative APIs are exposed on different ports. Public APIs can face the public internet without any protection while administrative APIs should never be exposed without prior authorization. To protect the administative API port you should use something like Nginx, Ory Oathkeeper, or any other technology capable of authorizing incoming requests.
- *
- * API version: 1.0.0
- * Contact: hi@ory.sh
- */
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package kratos
-
-import (
-	"encoding/json"
-)
-
-// VerificationFlowMethod struct for VerificationFlowMethod
-type VerificationFlowMethod struct {
-	Config VerificationFlowMethodConfig `json:"config"`
-	// Method contains the request credentials type.
-	Method string `json:"method"`
-}
-
-// NewVerificationFlowMethod instantiates a new VerificationFlowMethod object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewVerificationFlowMethod(config VerificationFlowMethodConfig, method string) *VerificationFlowMethod {
-	this := VerificationFlowMethod{}
-	this.Config = config
-	this.Method = method
-	return &this
-}
-
-// NewVerificationFlowMethodWithDefaults instantiates a new VerificationFlowMethod object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewVerificationFlowMethodWithDefaults() *VerificationFlowMethod {
-	this := VerificationFlowMethod{}
-	return &this
-}
-
-// GetConfig returns the Config field value
-func (o *VerificationFlowMethod) GetConfig() VerificationFlowMethodConfig {
-	if o == nil {
-		var ret VerificationFlowMethodConfig
-		return ret
-	}
-
-	return o.Config
-}
-
-// GetConfigOk returns a tuple with the Config field value
-// and a boolean to check if the value has been set.
-func (o *VerificationFlowMethod) GetConfigOk() (*VerificationFlowMethodConfig, bool) {
-	if o == nil {
-		return nil, false
-	}
-	return &o.Config, true
-}
-
-// SetConfig sets field value
-func (o *VerificationFlowMethod) SetConfig(v VerificationFlowMethodConfig) {
-	o.Config = v
-}
-
-// GetMethod returns the Method field value
-func (o *VerificationFlowMethod) GetMethod() string {
-	if o == nil {
-		var ret string
-		return ret
-	}
-
-	return o.Method
-}
-
-// GetMethodOk returns a tuple with the Method field value
-// and a boolean to check if the value has been set.
-func (o *VerificationFlowMethod) GetMethodOk() (*string, bool) {
-	if o == nil {
-		return nil, false
-	}
-	return &o.Method, true
-}
-
-// SetMethod sets field value
-func (o *VerificationFlowMethod) SetMethod(v string) {
-	o.Method = v
-}
-
-func (o VerificationFlowMethod) MarshalJSON() ([]byte, error) {
-	toSerialize := map[string]interface{}{}
-	if true {
-		toSerialize["config"] = o.Config
-	}
-	if true {
-		toSerialize["method"] = o.Method
-	}
-	return json.Marshal(toSerialize)
-}
-
-type NullableVerificationFlowMethod struct {
-	value *VerificationFlowMethod
-	isSet bool
-}
-
-func (v NullableVerificationFlowMethod) Get() *VerificationFlowMethod {
-	return v.value
-}
-
-func (v *NullableVerificationFlowMethod) Set(val *VerificationFlowMethod) {
-	v.value = val
-	v.isSet = true
-}
-
-func (v NullableVerificationFlowMethod) IsSet() bool {
-	return v.isSet
-}
-
-func (v *NullableVerificationFlowMethod) Unset() {
-	v.value = nil
-	v.isSet = false
-}
-
-func NewNullableVerificationFlowMethod(val *VerificationFlowMethod) *NullableVerificationFlowMethod {
-	return &NullableVerificationFlowMethod{value: val, isSet: true}
-}
-
-func (v NullableVerificationFlowMethod) MarshalJSON() ([]byte, error) {
-	return json.Marshal(v.value)
-}
-
-func (v *NullableVerificationFlowMethod) UnmarshalJSON(src []byte) error {
-	v.isSet = true
-	return json.Unmarshal(src, &v.value)
-}
diff --git a/internal/httpclient/model_verification_flow_method_config.go b/internal/httpclient/model_verification_flow_method_config.go
deleted file mode 100644
index cec8be8ae..000000000
--- a/internal/httpclient/model_verification_flow_method_config.go
+++ /dev/null
@@ -1,203 +0,0 @@
-/*
- * Ory Kratos API
- *
- * Documentation for all public and administrative Ory Kratos APIs. Public and administrative APIs are exposed on different ports. Public APIs can face the public internet without any protection while administrative APIs should never be exposed without prior authorization. To protect the administative API port you should use something like Nginx, Ory Oathkeeper, or any other technology capable of authorizing incoming requests.
- *
- * API version: 1.0.0
- * Contact: hi@ory.sh
- */
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package kratos
-
-import (
-	"encoding/json"
-)
-
-// VerificationFlowMethodConfig struct for VerificationFlowMethodConfig
-type VerificationFlowMethodConfig struct {
-	// Action should be used as the form action URL `<form action=\"{{ .Action }}\" method=\"post\">`.
-	Action   string   `json:"action"`
-	Messages []UiText `json:"messages,omitempty"`
-	// Method is the form method (e.g. POST)
-	Method string   `json:"method"`
-	Nodes  []UiNode `json:"nodes"`
-}
-
-// NewVerificationFlowMethodConfig instantiates a new VerificationFlowMethodConfig object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewVerificationFlowMethodConfig(action string, method string, nodes []UiNode) *VerificationFlowMethodConfig {
-	this := VerificationFlowMethodConfig{}
-	this.Action = action
-	this.Method = method
-	this.Nodes = nodes
-	return &this
-}
-
-// NewVerificationFlowMethodConfigWithDefaults instantiates a new VerificationFlowMethodConfig object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewVerificationFlowMethodConfigWithDefaults() *VerificationFlowMethodConfig {
-	this := VerificationFlowMethodConfig{}
-	return &this
-}
-
-// GetAction returns the Action field value
-func (o *VerificationFlowMethodConfig) GetAction() string {
-	if o == nil {
-		var ret string
-		return ret
-	}
-
-	return o.Action
-}
-
-// GetActionOk returns a tuple with the Action field value
-// and a boolean to check if the value has been set.
-func (o *VerificationFlowMethodConfig) GetActionOk() (*string, bool) {
-	if o == nil {
-		return nil, false
-	}
-	return &o.Action, true
-}
-
-// SetAction sets field value
-func (o *VerificationFlowMethodConfig) SetAction(v string) {
-	o.Action = v
-}
-
-// GetMessages returns the Messages field value if set, zero value otherwise.
-func (o *VerificationFlowMethodConfig) GetMessages() []UiText {
-	if o == nil || o.Messages == nil {
-		var ret []UiText
-		return ret
-	}
-	return o.Messages
-}
-
-// GetMessagesOk returns a tuple with the Messages field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-func (o *VerificationFlowMethodConfig) GetMessagesOk() ([]UiText, bool) {
-	if o == nil || o.Messages == nil {
-		return nil, false
-	}
-	return o.Messages, true
-}
-
-// HasMessages returns a boolean if a field has been set.
-func (o *VerificationFlowMethodConfig) HasMessages() bool {
-	if o != nil && o.Messages != nil {
-		return true
-	}
-
-	return false
-}
-
-// SetMessages gets a reference to the given []UiText and assigns it to the Messages field.
-func (o *VerificationFlowMethodConfig) SetMessages(v []UiText) {
-	o.Messages = v
-}
-
-// GetMethod returns the Method field value
-func (o *VerificationFlowMethodConfig) GetMethod() string {
-	if o == nil {
-		var ret string
-		return ret
-	}
-
-	return o.Method
-}
-
-// GetMethodOk returns a tuple with the Method field value
-// and a boolean to check if the value has been set.
-func (o *VerificationFlowMethodConfig) GetMethodOk() (*string, bool) {
-	if o == nil {
-		return nil, false
-	}
-	return &o.Method, true
-}
-
-// SetMethod sets field value
-func (o *VerificationFlowMethodConfig) SetMethod(v string) {
-	o.Method = v
-}
-
-// GetNodes returns the Nodes field value
-func (o *VerificationFlowMethodConfig) GetNodes() []UiNode {
-	if o == nil {
-		var ret []UiNode
-		return ret
-	}
-
-	return o.Nodes
-}
-
-// GetNodesOk returns a tuple with the Nodes field value
-// and a boolean to check if the value has been set.
-func (o *VerificationFlowMethodConfig) GetNodesOk() ([]UiNode, bool) {
-	if o == nil {
-		return nil, false
-	}
-	return o.Nodes, true
-}
-
-// SetNodes sets field value
-func (o *VerificationFlowMethodConfig) SetNodes(v []UiNode) {
-	o.Nodes = v
-}
-
-func (o VerificationFlowMethodConfig) MarshalJSON() ([]byte, error) {
-	toSerialize := map[string]interface{}{}
-	if true {
-		toSerialize["action"] = o.Action
-	}
-	if o.Messages != nil {
-		toSerialize["messages"] = o.Messages
-	}
-	if true {
-		toSerialize["method"] = o.Method
-	}
-	if true {
-		toSerialize["nodes"] = o.Nodes
-	}
-	return json.Marshal(toSerialize)
-}
-
-type NullableVerificationFlowMethodConfig struct {
-	value *VerificationFlowMethodConfig
-	isSet bool
-}
-
-func (v NullableVerificationFlowMethodConfig) Get() *VerificationFlowMethodConfig {
-	return v.value
-}
-
-func (v *NullableVerificationFlowMethodConfig) Set(val *VerificationFlowMethodConfig) {
-	v.value = val
-	v.isSet = true
-}
-
-func (v NullableVerificationFlowMethodConfig) IsSet() bool {
-	return v.isSet
-}
-
-func (v *NullableVerificationFlowMethodConfig) Unset() {
-	v.value = nil
-	v.isSet = false
-}
-
-func NewNullableVerificationFlowMethodConfig(val *VerificationFlowMethodConfig) *NullableVerificationFlowMethodConfig {
-	return &NullableVerificationFlowMethodConfig{value: val, isSet: true}
-}
-
-func (v NullableVerificationFlowMethodConfig) MarshalJSON() ([]byte, error) {
-	return json.Marshal(v.value)
-}
-
-func (v *NullableVerificationFlowMethodConfig) UnmarshalJSON(src []byte) error {
-	v.isSet = true
-	return json.Unmarshal(src, &v.value)
-}
diff --git a/internal/httpclient/model_verification_flow_method_config_payload.go b/internal/httpclient/model_verification_flow_method_config_payload.go
deleted file mode 100644
index 4eb1401d3..000000000
--- a/internal/httpclient/model_verification_flow_method_config_payload.go
+++ /dev/null
@@ -1,203 +0,0 @@
-/*
- * Ory Kratos API
- *
- * Documentation for all public and administrative Ory Kratos APIs. Public and administrative APIs are exposed on different ports. Public APIs can face the public internet without any protection while administrative APIs should never be exposed without prior authorization. To protect the administative API port you should use something like Nginx, Ory Oathkeeper, or any other technology capable of authorizing incoming requests.
- *
- * API version: 1.0.0
- * Contact: hi@ory.sh
- */
-
-// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
-
-package kratos
-
-import (
-	"encoding/json"
-)
-
-// VerificationFlowMethodConfigPayload struct for VerificationFlowMethodConfigPayload
-type VerificationFlowMethodConfigPayload struct {
-	// Action should be used as the form action URL `<form action=\"{{ .Action }}\" method=\"post\">`.
-	Action   string   `json:"action"`
-	Messages []UiText `json:"messages,omitempty"`
-	// Method is the form method (e.g. POST)
-	Method string   `json:"method"`
-	Nodes  []UiNode `json:"nodes"`
-}
-
-// NewVerificationFlowMethodConfigPayload instantiates a new VerificationFlowMethodConfigPayload object
-// This constructor will assign default values to properties that have it defined,
-// and makes sure properties required by API are set, but the set of arguments
-// will change when the set of required properties is changed
-func NewVerificationFlowMethodConfigPayload(action string, method string, nodes []UiNode) *VerificationFlowMethodConfigPayload {
-	this := VerificationFlowMethodConfigPayload{}
-	this.Action = action
-	this.Method = method
-	this.Nodes = nodes
-	return &this
-}
-
-// NewVerificationFlowMethodConfigPayloadWithDefaults instantiates a new VerificationFlowMethodConfigPayload object
-// This constructor will only assign default values to properties that have it defined,
-// but it doesn't guarantee that properties required by API are set
-func NewVerificationFlowMethodConfigPayloadWithDefaults() *VerificationFlowMethodConfigPayload {
-	this := VerificationFlowMethodConfigPayload{}
-	return &this
-}
-
-// GetAction returns the Action field value
-func (o *VerificationFlowMethodConfigPayload) GetAction() string {
-	if o == nil {
-		var ret string
-		return ret
-	}
-
-	return o.Action
-}
-
-// GetActionOk returns a tuple with the Action field value
-// and a boolean to check if the value has been set.
-func (o *VerificationFlowMethodConfigPayload) GetActionOk() (*string, bool) {
-	if o == nil {
-		return nil, false
-	}
-	return &o.Action, true
-}
-
-// SetAction sets field value
-func (o *VerificationFlowMethodConfigPayload) SetAction(v string) {
-	o.Action = v
-}
-
-// GetMessages returns the Messages field value if set, zero value otherwise.
-func (o *VerificationFlowMethodConfigPayload) GetMessages() []UiText {
-	if o == nil || o.Messages == nil {
-		var ret []UiText
-		return ret
-	}
-	return o.Messages
-}
-
-// GetMessagesOk returns a tuple with the Messages field value if set, nil otherwise
-// and a boolean to check if the value has been set.
-func (o *VerificationFlowMethodConfigPayload) GetMessagesOk() ([]UiText, bool) {
-	if o == nil || o.Messages == nil {
-		return nil, false
-	}
-	return o.Messages, true
-}
-
-// HasMessages returns a boolean if a field has been set.
-func (o *VerificationFlowMethodConfigPayload) HasMessages() bool {
-	if o != nil && o.Messages != nil {
-		return true
-	}
-
-	return false
-}
-
-// SetMessages gets a reference to the given []UiText and assigns it to the Messages field.
-func (o *VerificationFlowMethodConfigPayload) SetMessages(v []UiText) {
-	o.Messages = v
-}
-
-// GetMethod returns the Method field value
-func (o *VerificationFlowMethodConfigPayload) GetMethod() string {
-	if o == nil {
-		var ret string
-		return ret
-	}
-
-	return o.Method
-}
-
-// GetMethodOk returns a tuple with the Method field value
-// and a boolean to check if the value has been set.
-func (o *VerificationFlowMethodConfigPayload) GetMethodOk() (*string, bool) {
-	if o == nil {
-		return nil, false
-	}
-	return &o.Method, true
-}
-
-// SetMethod sets field value
-func (o *VerificationFlowMethodConfigPayload) SetMethod(v string) {
-	o.Method = v
-}
-
-// GetNodes returns the Nodes field value
-func (o *VerificationFlowMethodConfigPayload) GetNodes() []UiNode {
-	if o == nil {
-		var ret []UiNode
-		return ret
-	}
-
-	return o.Nodes
-}
-
-// GetNodesOk returns a tuple with the Nodes field value
-// and a boolean to check if the value has been set.
-func (o *VerificationFlowMethodConfigPayload) GetNodesOk() ([]UiNode, bool) {
-	if o == nil {
-		return nil, false
-	}
-	return o.Nodes, true
-}
-
-// SetNodes sets field value
-func (o *VerificationFlowMethodConfigPayload) SetNodes(v []UiNode) {
-	o.Nodes = v
-}
-
-func (o VerificationFlowMethodConfigPayload) MarshalJSON() ([]byte, error) {
-	toSerialize := map[string]interface{}{}
-	if true {
-		toSerialize["action"] = o.Action
-	}
-	if o.Messages != nil {
-		toSerialize["messages"] = o.Messages
-	}
-	if true {
-		toSerialize["method"] = o.Method
-	}
-	if true {
-		toSerialize["nodes"] = o.Nodes
-	}
-	return json.Marshal(toSerialize)
-}
-
-type NullableVerificationFlowMethodConfigPayload struct {
-	value *VerificationFlowMethodConfigPayload
-	isSet bool
-}
-
-func (v NullableVerificationFlowMethodConfigPayload) Get() *VerificationFlowMethodConfigPayload {
-	return v.value
-}
-
-func (v *NullableVerificationFlowMethodConfigPayload) Set(val *VerificationFlowMethodConfigPayload) {
-	v.value = val
-	v.isSet = true
-}
-
-func (v NullableVerificationFlowMethodConfigPayload) IsSet() bool {
-	return v.isSet
-}
-
-func (v *NullableVerificationFlowMethodConfigPayload) Unset() {
-	v.value = nil
-	v.isSet = false
-}
-
-func NewNullableVerificationFlowMethodConfigPayload(val *VerificationFlowMethodConfigPayload) *NullableVerificationFlowMethodConfigPayload {
-	return &NullableVerificationFlowMethodConfigPayload{value: val, isSet: true}
-}
-
-func (v NullableVerificationFlowMethodConfigPayload) MarshalJSON() ([]byte, error) {
-	return json.Marshal(v.value)
-}
-
-func (v *NullableVerificationFlowMethodConfigPayload) UnmarshalJSON(src []byte) error {
-	v.isSet = true
-	return json.Unmarshal(src, &v.value)
-}
diff --git a/selfservice/flow/recovery/handler.go b/selfservice/flow/recovery/handler.go
index be610afd7..4b4dad82c 100644
--- a/selfservice/flow/recovery/handler.go
+++ b/selfservice/flow/recovery/handler.go
@@ -59,8 +59,8 @@ func NewHandler(d handlerDependencies) *Handler {
 }
 
 func (h *Handler) RegisterPublicRoutes(public *x.RouterPublic) {
-	h.d.CSRFHandler().IgnorePath(RouteSubmitFlow)
 	h.d.CSRFHandler().IgnorePath(RouteInitAPIFlow)
+	h.d.CSRFHandler().IgnorePath(RouteSubmitFlow)
 
 	redirect := session.RedirectOnAuthenticated(h.d)
 	public.GET(RouteInitBrowserFlow, h.d.SessionHandler().IsNotAuthenticated(h.initBrowserFlow, redirect))
diff --git a/selfservice/strategy/link/.schema/recovery.schema.json b/selfservice/strategy/link/.schema/recovery.schema.json
index a52969fb2..e633741bc 100644
--- a/selfservice/strategy/link/.schema/recovery.schema.json
+++ b/selfservice/strategy/link/.schema/recovery.schema.json
@@ -18,8 +18,7 @@
       "format": "uuid"
     },
     "csrf_token": {
-      "type": "string",
-      "minLength": 1
+      "type": "string"
     }
   }
 }
diff --git a/selfservice/strategy/link/.schema/verification.schema.json b/selfservice/strategy/link/.schema/verification.schema.json
index a52969fb2..e633741bc 100644
--- a/selfservice/strategy/link/.schema/verification.schema.json
+++ b/selfservice/strategy/link/.schema/verification.schema.json
@@ -18,8 +18,7 @@
       "format": "uuid"
     },
     "csrf_token": {
-      "type": "string",
-      "minLength": 1
+      "type": "string"
     }
   }
 }
diff --git a/spec/openapi.json b/spec/openapi.json
index 7783b44a1..e4cb929ca 100755
--- a/spec/openapi.json
+++ b/spec/openapi.json
@@ -1022,6 +1022,13 @@
             "format": "date-time",
             "type": "string"
           },
+          "credentials": {
+            "additionalProperties": {
+              "$ref": "#/components/schemas/identityCredentials"
+            },
+            "description": "Credentials represents all credentials that can be used for authenticating this identity.",
+            "type": "object"
+          },
           "id": {
             "$ref": "#/components/schemas/UUID"
           },
diff --git a/spec/swagger.json b/spec/swagger.json
index 4f1468dfd..011854f3b 100755
--- a/spec/swagger.json
+++ b/spec/swagger.json
@@ -2623,6 +2623,13 @@
           "type": "string",
           "format": "date-time"
         },
+        "credentials": {
+          "description": "Credentials represents all credentials that can be used for authenticating this identity.",
+          "type": "object",
+          "additionalProperties": {
+            "$ref": "#/definitions/identityCredentials"
+          }
+        },
         "id": {
           "$ref": "#/definitions/UUID"
         },


Test patch:
diff --git a/identity/identity_test.go b/identity/identity_test.go
index d8ed62ea5..0d499fada 100644
--- a/identity/identity_test.go
+++ b/identity/identity_test.go
@@ -1,8 +1,16 @@
 package identity
 
 import (
+	"bytes"
+	"encoding/json"
+	"github.com/stretchr/testify/require"
+	"github.com/tidwall/gjson"
 	"testing"
 
+	"github.com/gofrs/uuid"
+
+	"github.com/ory/x/sqlxx"
+
 	"github.com/ory/kratos/driver/config"
 
 	"github.com/stretchr/testify/assert"
@@ -15,3 +23,78 @@ func TestNewIdentity(t *testing.T) {
 	assert.NotEmpty(t, i.Traits)
 	assert.NotNil(t, i.Credentials)
 }
+
+func TestMarshalExcludesCredentials(t *testing.T) {
+	i := NewIdentity(config.DefaultIdentityTraitsSchemaID)
+	i.Credentials = map[CredentialsType]Credentials{
+		CredentialsTypePassword: Credentials{
+			ID: uuid.UUID{},
+		},
+	}
+
+	var b bytes.Buffer
+	require.Nil(t, json.NewEncoder(&b).Encode(i))
+
+	assert.False(t, gjson.Get(b.String(), "credentials").Exists(), "Credentials should not be rendered to json")
+
+	// To ensure the original identity is not changed / Unmarshal has no side effects:
+	require.NotEmpty(t, i.Credentials)
+}
+
+func TestMarshalExcludesCredentialsByReference(t *testing.T) {
+	i := NewIdentity(config.DefaultIdentityTraitsSchemaID)
+	i.Credentials = map[CredentialsType]Credentials{
+		CredentialsTypePassword: Credentials{
+			ID: uuid.UUID{},
+		},
+	}
+
+	var b bytes.Buffer
+	require.Nil(t, json.NewEncoder(&b).Encode(&i))
+
+	assert.False(t, gjson.Get(b.String(), "credentials").Exists(), "Credentials should not be rendered to json")
+
+	// To ensure the original identity is not changed / Unmarshal has no side effects:
+	require.NotEmpty(t, i.Credentials)
+}
+
+func TestUnMarshallIgnoresCredentials(t *testing.T) {
+	jsonText := "{\"id\":\"3234ad11-49c6-49e2-bfac-537f3e06cd85\",\"schema_id\":\"default\",\"schema_url\":\"\",\"traits\":{}, \"credentials\" : {\"password\":{\"type\":\"\",\"identifiers\":null,\"config\":null,\"updatedAt\":\"0001-01-01T00:00:00Z\"}}}"
+	var i Identity
+	err := json.Unmarshal([]byte(jsonText), &i)
+	assert.Nil(t, err)
+
+	assert.Nil(t, i.Credentials)
+	assert.Equal(t, "3234ad11-49c6-49e2-bfac-537f3e06cd85", i.ID.String())
+}
+
+func TestMarshalIdentityWithCredentialsWhenCredentialsNil(t *testing.T) {
+	i := NewIdentity(config.DefaultIdentityTraitsSchemaID)
+	i.Credentials = nil
+
+	var b bytes.Buffer
+	require.Nil(t, json.NewEncoder(&b).Encode(IdentityWithCredentialsMetadataInJSON(*i)))
+
+	assert.False(t, gjson.Get(b.String(), "credentials").Exists())
+}
+
+func TestMarshalIdentityWithCredentials(t *testing.T) {
+	i := NewIdentity(config.DefaultIdentityTraitsSchemaID)
+	credentials := map[CredentialsType]Credentials{
+		CredentialsTypePassword: Credentials{
+			Type:   CredentialsTypePassword,
+			Config: sqlxx.JSONRawMessage("{\"some\" : \"secret\"}"),
+		},
+	}
+	i.Credentials = credentials
+
+
+	var b bytes.Buffer
+	require.Nil(t, json.NewEncoder(&b).Encode(IdentityWithCredentialsMetadataInJSON(*i)))
+
+	credentialsInJson := gjson.Get(b.String(), "credentials")
+	assert.True(t, credentialsInJson.Exists())
+
+	assert.JSONEq(t, "{\"password\":{\"type\":\"password\",\"identifiers\":null,\"updated_at\":\"0001-01-01T00:00:00Z\",\"created_at\":\"0001-01-01T00:00:00Z\"}}", credentialsInJson.Raw)
+	assert.Equal(t, credentials, i.Credentials, "Original credentials should not be touched by marshalling")
+}
diff --git a/internal/testhelpers/selfservice_recovery.go b/internal/testhelpers/selfservice_recovery.go
index 3999f215d..70744b577 100644
--- a/internal/testhelpers/selfservice_recovery.go
+++ b/internal/testhelpers/selfservice_recovery.go
@@ -52,6 +52,8 @@ func InitializeVerificationFlowViaBrowser(t *testing.T, client *http.Client, ts
 	require.NoError(t, err)
 	require.NoError(t, res.Body.Close())
 
+	t.Logf("%+v\n\n%+v", client.Jar, res.Header)
+
 	rs, _, err := publicClient.PublicApi.GetSelfServiceVerificationFlow(context.Background()).Id(res.Request.URL.Query().Get("flow")).Execute()
 	require.NoError(t, err)
 	assert.Empty(t, rs.Active)
@@ -96,7 +98,6 @@ func SubmitVerificationForm(
 	expectedStatusCode int,
 	expectedURL string,
 ) string {
-	hc.Transport = NewTransportWithLogger(hc.Transport, t)
 	var f *kratos.VerificationFlow
 	if isAPI {
 		f = InitializeVerificationFlowViaAPI(t, hc, publicTS)
diff --git a/internal/testhelpers/server.go b/internal/testhelpers/server.go
index 8037d3965..76a8925a6 100644
--- a/internal/testhelpers/server.go
+++ b/internal/testhelpers/server.go
@@ -2,6 +2,7 @@ package testhelpers
 
 import (
 	"context"
+	"strings"
 	"testing"
 
 	"github.com/gobuffalo/httptest"
@@ -20,6 +21,11 @@ func NewKratosServerWithCSRF(t *testing.T, reg driver.Registry) (public, admin *
 	public = httptest.NewServer(x.NewTestCSRFHandler(rp, reg))
 	admin = httptest.NewServer(ra)
 
+	// Workaround for:
+	// - https://github.com/golang/go/issues/12610
+	// - https://github.com/golang/go/issues/31054
+	public.URL = strings.Replace(public.URL, "127.0.0.1", "localhost", -1)
+
 	if len(reg.Config(context.Background()).Source().String(config.ViperKeySelfServiceLoginUI)) == 0 {
 		reg.Config(context.Background()).MustSet(config.ViperKeySelfServiceLoginUI, "http://NewKratosServerWithCSRF/you-forgot-to-set-me/login")
 	}
diff --git a/selfservice/strategy/link/strategy_recovery_test.go b/selfservice/strategy/link/strategy_recovery_test.go
index b76b5d1e4..06d5b9bb8 100644
--- a/selfservice/strategy/link/strategy_recovery_test.go
+++ b/selfservice/strategy/link/strategy_recovery_test.go
@@ -149,7 +149,7 @@ func TestRecovery(t *testing.T) {
 	_ = testhelpers.NewSettingsUIFlowEchoServer(t, reg)
 	_ = testhelpers.NewErrorTestServer(t, reg)
 
-	public, _ := testhelpers.NewKratosServer(t, reg)
+	public, _ := testhelpers.NewKratosServerWithCSRF(t, reg)
 
 	require.NoError(t, reg.IdentityManager().Create(context.Background(), identityToRecover,
 		identity.ManagerAllowWriteProtectedTraits))
@@ -157,8 +157,10 @@ func TestRecovery(t *testing.T) {
 	var expect = func(t *testing.T, isAPI bool, values func(url.Values), c int) string {
 		hc := testhelpers.NewDebugClient(t)
 		if !isAPI {
-			hc = testhelpers.NewDebugClient(t)
+			hc = testhelpers.NewClientWithCookies(t)
+			hc.Transport = testhelpers.NewTransportWithLogger(http.DefaultTransport, t).RoundTripper
 		}
+
 		return testhelpers.SubmitRecoveryForm(t, isAPI, hc, public, values, c,
 			testhelpers.ExpectURL(isAPI, public.URL+recovery.RouteSubmitFlow, conf.SelfServiceFlowRecoveryUI().String()))
 	}
@@ -175,14 +177,14 @@ func TestRecovery(t *testing.T) {
 		c := testhelpers.NewClientWithCookies(t)
 		rs := testhelpers.GetRecoveryFlow(t, c, public)
 
-		assertx.EqualAsJSON(t, json.RawMessage(`[
+		assertx.EqualAsJSONExcept(t, json.RawMessage(`[
   {
     "attributes": {
       "disabled": false,
       "name": "csrf_token",
       "required": true,
       "type": "hidden",
-      "value": "`+x.FakeCSRFToken+`"
+      "value": ""
     },
     "group": "default",
     "messages": null,
@@ -219,7 +221,7 @@ func TestRecovery(t *testing.T) {
     },
     "type": "input"
   }
-]`), rs.Ui.Nodes)
+]`), rs.Ui.Nodes, []string{"0.attributes.value"})
 		assert.EqualValues(t, public.URL+recovery.RouteSubmitFlow+"?flow="+rs.Id, rs.Ui.Action)
 		assert.Empty(t, rs.Ui.Messages)
 	})
diff --git a/selfservice/strategy/link/strategy_verification_test.go b/selfservice/strategy/link/strategy_verification_test.go
index dd2bc4a79..bc410672a 100644
--- a/selfservice/strategy/link/strategy_verification_test.go
+++ b/selfservice/strategy/link/strategy_verification_test.go
@@ -51,15 +51,18 @@ func TestVerification(t *testing.T) {
 	_ = testhelpers.NewErrorTestServer(t, reg)
 	_ = testhelpers.NewRedirTS(t, "returned", conf)
 
-	public, _ := testhelpers.NewKratosServer(t, reg)
+	public, _ := testhelpers.NewKratosServerWithCSRF(t, reg)
+
 	require.NoError(t, reg.IdentityManager().Create(context.Background(), identityToVerify,
 		identity.ManagerAllowWriteProtectedTraits))
 
 	var expect = func(t *testing.T, isAPI bool, values func(url.Values), c int) string {
 		hc := testhelpers.NewDebugClient(t)
 		if !isAPI {
-			hc = testhelpers.NewDebugClient(t)
+			hc = testhelpers.NewClientWithCookies(t)
+			hc.Transport = testhelpers.NewTransportWithLogger(http.DefaultTransport, t).RoundTripper
 		}
+
 		return testhelpers.SubmitVerificationForm(t, isAPI, hc, public, values, c,
 			testhelpers.ExpectURL(isAPI, public.URL+verification.RouteSubmitFlow, conf.SelfServiceFlowVerificationUI().String()))
 	}
@@ -76,14 +79,14 @@ func TestVerification(t *testing.T) {
 		c := testhelpers.NewClientWithCookies(t)
 		rs := testhelpers.GetVerificationFlow(t, c, public)
 
-		assertx.EqualAsJSON(t, json.RawMessage(`[
+		assertx.EqualAsJSONExcept(t, json.RawMessage(`[
   {
     "attributes": {
       "disabled": false,
       "name": "csrf_token",
       "required": true,
       "type": "hidden",
-      "value": "`+x.FakeCSRFToken+`"
+      "value": ""
     },
     "group": "default",
     "messages": null,
@@ -120,7 +123,7 @@ func TestVerification(t *testing.T) {
     },
     "type": "input"
   }
-]`), rs.Ui.Nodes)
+]`), rs.Ui.Nodes, []string{"0.attributes.value"})
 		assert.EqualValues(t, public.URL+verification.RouteSubmitFlow+"?flow="+rs.Id, rs.Ui.Action)
 		assert.Empty(t, rs.Ui.Messages)
 	})